Форум: "WinAPI";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Внизработа 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2004.01.09;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c