Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.11;
Скачать: CL | DM;

Вниз

Проблема с таймером   Найти похожие ветки 

 
Ботвин Дмитрий   (2005-10-07 13:45) [0]

Всем привет! У меня такая проблема: с помощью
mmResult:=timeSetEvent(5000, 0, @TimeCallBack, 0, 0) создаю таймер,

обработку события делаю так:
procedure TimeCallBack(TimerID, Msg: Uint; dwUser, dw1, dw2: DWORD); stdcall;
 begin
   timeKillEvent(mmResult);
   Form2.BeginPlay;
 end;

На процедуре BeginPlay приложение виснет. Если заменить на
обычный TTimer и в его обработчик событий вставить Form2.BeginPlay - всё работает.

Подскажите в чём проблема?


 
Digitman ©   (2005-10-07 14:00) [1]

и что же у тебя творится в теле BeginPlay() ?


 
Ботвин Дмитрий   (2005-10-07 14:32) [2]

Digitman ©   (07.10.05 14:00) [1]

Я думаю, что дело не вней, т.к. с обычным таймером всё работает.
Пробывал звменить таймер на обычныу задержку Sleep, после чего вызывать
Form2.BeginPlay - тоже всё нормально. Может я что-то не правильно делаю
в TimeCallBack?


 
Digitman ©   (2005-10-07 15:05) [3]


> Ботвин Дмитрий   (07.10.05 14:32) [2]


"гениальная" мысль воспользоваться встр.отладчиком в голову не приходила ?


 
Ботвин Дмитрий   (2005-10-07 15:09) [4]

> Ботвин Дмитрий   (07.10.05 14:32) [2]

Приходила. Даже пробывал на досуге. Исключений при этом не возникает. Просто "виснет" и всё...


 
Digitman ©   (2005-10-07 15:13) [5]


> Просто "виснет" и всё


"просто" - это только у кроликов, в момент всем известного процесса)

"Вис" же обычно возникает при вызове по F8 той или иной п/программы ..

Мысль нажать F7 вместо F8 не приходила ?


 
Ботвин Дмитрий   (2005-10-07 15:34) [6]

Интересный факт обноружился:

В процедуре TimeCallBack прога "виснет" при входе в любую процедуру

procedure TimeCallBack(TimerID, Msg: Uint; dwUser, dw1, dw2: DWORD); stdcall;
begin
  timeKillEvent(mmResult);
  //После этого и "висет" при входе в любую процедуру
  ...
end;

Может есть какой-то ньюанс у кулбэковской процедуры?


 
Leonid Troyanovsky ©   (2005-10-07 15:52) [7]


> Ботвин Дмитрий   (07.10.05 15:34) [6]

> Может есть какой-то ньюанс у кулбэковской процедуры?


У оной функции, если мне не изменяет склероз, был даже список
рекомендованных для использования функций, за пределы которого
выбираться можно лишь с низкими поклонами.

--
Regards, LVT.


 
Digitman ©   (2005-10-07 15:57) [8]


> Может есть какой-то ньюанс у кулбэковской процедуры?


конечно есть !

читаем справку :

The multimedia timer runs in its own thread.

В отличие от других таймерных объектов системы ЭТОТ таймерный объект для обработки своих событий создает новый кодовый поток, в коем собственно и вызывает ту ф-цию, которую ты указал при вызове timeSetEvent()


> кулбэковской


эт что-то новенькое)..

callback - это гораздо ближе по звучанию "колбэк" (обратный вызов), нежели к "кулбэк" (нечто похожее на "свежий вызов")


> "висет" при входе в любую процедуру


ой не ври !)

F7 ты не давил ? не давил) ... не сподобился)
а если бы давил, то убедился бы в тгом, что ВХОД в ЛЮБУЮ процедуру осуществляется совершенно нормально.


 
Digitman ©   (2005-10-07 15:59) [9]


> ньюанс


эт тоже наводит на мысль о чем-то новеньком, типа "нового ануса"))))



Страницы: 1 вся ветка

Текущий архив: 2005.12.11;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
14-1132313939
dr Tr0jan
2005-11-18 14:38
2005.12.11
Новое крепление твоего вентилятора


1-1131704477
DelphiLexx
2005-11-11 13:21
2005.12.11
DosToWin


3-1130309787
йцукен
2005-10-26 10:56
2005.12.11
DataSet.recNo


14-1132407960
nbv
2005-11-19 16:46
2005.12.11
Скрытие кода


1-1131968633
keal
2005-11-14 14:43
2005.12.11
Как сравнить строки и вывести процент совпадения?