Вниз
Скачать: CL | DM;

работа Timer ом   Найти похожие ветки 

← →
rel_   (2003-11-06 16:37) [0]

Мастера, как в конструкторе класса сгенерирвоать таймер и передать в него функцию того же класса.


← →
Anatoly Podgoretsky ©   (2003-11-06 16:43) [1]

Теперь переведи


← →
rel_   (2003-11-06 17:04) [2]

Перевожу :
Существует ф-ия (пример из моей проги): SetTimer(FHandle, 0, 1000, @TimerProc);

Как мне организовать ф-ию TimerProc - если это ф-ия класса.

Делаю следующее:
1) объявляю тип TTimerProc = procedure (Wnd : HWND; msg : UINT; idTimer : UINT; dwTime:DWORD) of object;

2) в классе объявляю переменную FTimerProc : TTimerProc
3) в этом же классе завожу процедуру OnTimer(Wnd : HWND; msg : UINT; idTimer : UINT; dwTime:DWORD)
4) в конструкторе класса пишу след:
FTimerProc:=OnTimer;
SetTimer(FHandle, 0, 1000, @FTimerProc);

И ничего не работает.


← →
clickmaker ©   (2003-11-06 17:09) [3]

И не будет. В ф-ию-член класса неявно первым параметром передается Self. А таймер этого не ждет. Ему нужна обычная функция, причем stdcall


← →
wicked ©   (2003-11-07 01:30) [4]

типа так:
procedure MyClass.OnTimer( var Msg: TMessage)

заводим переменную TimerProc: Pointer

инициализируем
TimerProc := MakeObjectInstance(OnTimer);
SetTimer(FHandle, 0, 1000, TimerProc);

уходя, убираем
KillTimer(...)
FreeObjectInstance(TimerProc);



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
4-25658
kryn
2003-11-06 10:48
2004.01.09
как при помощи DELPHI удалить папку вместе с файлами?


14-25529
JibSkeart
2003-12-19 12:01
2004.01.09
найти наибольших 2 элемента в 6 переменных не прибегая к массиву


14-25582
Mike Kouzmine
2003-12-18 15:30
2004.01.09
Gprs и КПК


1-25373
Indy
2003-12-25 04:45
2004.01.09
Документация по Indy


1-25386
Rate
2003-12-24 20:09
2004.01.09
Нажатие кнопки




   Наверх