Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.01.2015, 19:01   #1
Вадим Вергун
Пользователь
 
Регистрация: 01.11.2014
Сообщений: 52
По умолчанию Странное поведение программы

Пишу программу для проведения бреин ринга без использования кнопок. Суть такова: При включении появляется табло с выключенным таймером. При нажатии мышкой на таймер он запускается. Если таймер запущен то при нажатии на красное или синее поле игроков таймер останавливается и в его центе появляется восклицательный знак цвета поля на которое нажали. Далее всё повторяется заново до окончания игры. Таймер запускается, НО при нажатии на поле пишет что программа не отвечает... По отдельности все процедуры работает как надо. Подскажите пожалуйста, что я делаю не так?

Код:
uses
  ABCObjects, GraphABC, Timers;


var
  r: CircleABC; 
  c: RectangleABC;
  ot: Boolean;
  ii: integer;


procedure naz; //Звук при нажатии на поле
var
  i: integer;
  sound: system.Media.SoundPlayer;
begin
  sound := new system.Media.SoundPlayer;
  sound.SoundLocation := 'Правильно.wav';
  sound.Play;
end;



procedure tim(t: integer); //Таймер
var
  i: integer;
  c: CircleABC;
begin
  
  c := new CircleABC(600, 295, 102, clwhite); 
  for i := 0 to t do
  begin
    if ot then begin
      c.Number := t - i;
      sleep(1000);
    end;
  end;
end;

procedure MouseDown(x, y, mb: integer); //Нажатия на поле и таймер
var
  c: CircleABC;
begin
  if mb = 1 then begin
    if ot then begin
      if x < 400 then begin c := new CircleABC(600, 295, 102, clwhite);  naz; PictureABC.Create(565, 210, 'ОтвекКР.png'); ot := false end;
      if x > 800 then begin c := new CircleABC(600, 295, 102, clwhite); naz; PictureABC.Create(565, 210, 'ОтветСН.png');ot := false end;
      if (x>400) and (x<800) then begin writeln(1) {ot:=true; tim(60)}end;
    end;
  end;
  if mb = 1 then begin
    if ot=false then begin
    if (x>400) and (x<800) then begin ot := true; tim(60); end;
    end;
    end;
end;


begin
ot := false; // ot определяет включен ли таймер
  LoadWindow('Поле.png'); //Заставка на экран
  OnMouseDown := MouseDown;
  tim(60);
 
end.

Последний раз редактировалось Stilet; 28.01.2015 в 19:42.
Вадим Вергун вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Странное поведение idHTTP Serzant Работа с сетью в Delphi 1 21.02.2014 21:04
c++ builder странное поведение программы world12_tk Помощь студентам 0 23.01.2012 16:44
Странное поведение диска С DRAgon™ Компьютерное железо 20 12.03.2011 22:59
Странное поведение gets alex_alpha Общие вопросы C/C++ 3 27.03.2010 18:21
Странное поведение базы yulia БД в Delphi 7 22.04.2009 07:15