Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Вниз

особенности WndProc 


Satrap   (2002-01-06 11:56) [0]

Уважаемые знатоки, возможно я задаю наивный или некорректный вопрос и все же:
На форме расположен компонент TTimer, если нажать и удерживать левую клавишу в
неклиентской области формы, программа перестает попадать в событие OnTimer.
Насколько я понял, это как то связано с устройством процедуры TTimer.WndProc.
Нельзя ли как нибудь избавиться от этого неприятного эффекта?



Tolik2002   (2002-01-06 12:03) [1]

Наверное можно. Используй для этого или TThread, или (что проще) мультимедийый таймер.

MMRESULT timeSetEvent(
UINT uDelay,
UINT uResolution,
LPTIMECALLBACK lpTimeProc,
DWORD_PTR dwUser,
UINT fuEvent
);


MMRESULT timeKillEvent(
UINT uTimerID
);

короче смотри м MSDN:
timeBeginPeriod
timeEndPeriod
timeGetDevCaps
timeGetSystemTime
timeGetTime
timeKillEvent
TimeProc
timeSetEvent



Satrap   (2002-01-07 09:13) [2]

Большое спасибо за помощь, поробую.



TonnyS   (2002-01-08 16:44) [3]

Ещё вариант таймера (вычитал где-то):

var
uTimerID : cardinal;

procedure FNTimeCallBack(uTimerID, uMessage: UINT;dwUser, dw1, dw2: DWORD); stdcall; //это типа OnTimer
begin
...
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
uTimerID :=timeSetEvent(PrecValue,500,@FNTimeCallBack,100,TIME_PERIODIC); //запуск таймера, PrecValue - интервал, (что значат остальные цифры - не помню)
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
timeKillEvent(uTimerID); //Остановка таймера
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
if uTimerID <> 0 then timeKillEvent(uTimerID); //уничтожаем таймер
end;


вроде всё.



Yaro   (2002-01-09 04:15) [4]

А чем вам не нравится Виндовская АПИшка SetTimer ? Работает хорошо, почти независимо от программы. Читайте хелп и юзайте!



Satrap   (2002-01-11 16:05) [5]

Мне все нравиться, просто я программист неопытный, ничего не знаю, поэтому и спрашиваю



iZEN   (2002-01-11 20:51) [6]

Использовать TThread однозначно!




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.28;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.033 c
3-90202           Dimasty               2001-12-23 21:46  2002.01.28  
Работа с несколькими базами


1-90271           RomaRomaRoma          2002-01-09 19:29  2002.01.28  
Язык текста в RichEdit


6-90332           Star                  2001-11-06 09:14  2002.01.28  
Как определить комп, наиболее активно загружающий сеть?


1-90290           Delphimun             2002-01-07 12:11  2002.01.28  
Как найти в заданном тексте, сочетания символов, которые подходят заданной схеме?


1-90274           mvg_first             2002-01-08 13:34  2002.01.28  
Кто работал с InfoPower помогите передвинуть колонку в гриде