Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Вниз

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

 
Ботвин Дмитрий   (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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.12.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.063 c
2-1132400297
Volfram
2005-11-19 14:38
2005.12.11
Проблема с MediaPlayer


1-1131684367
Er
2005-11-11 07:46
2005.12.11
Выделение компонентов


14-1132632979
Separator
2005-11-22 07:16
2005.12.11
Закрытые и перенесеные посты


3-1130416819
Андрей Жук
2005-10-27 16:40
2005.12.11
Из какой вьюхи получить список полей таблиц в Oracle?


14-1132302901
Rentgen
2005-11-18 11:35
2005.12.11
Д.Р. на работе





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский