| |
|
|
![Frank Abbing: 30.03.2008](.././../../i/a/noavatar.gif) Frank Abbing | KompilierenMarkierenSeparierenSimple TimerProc
Frank Abbing
DEF SetATimer(4) !USER32,SetTimer
DEF KillATimer(2) !USER32,KillTimer
DEF GetTimeFormat(6) !KERNEL32,GetTimeFormatA
Proc timerproc
Declare text$
text$=Space$(20)
GetTimeFormat(0,0,0,0,Addr(text$),20)
text$=Uhrzeit: +text$
SetText %hwnd,text$
EndProc
Cls
SetATimer(%hwnd,1,1000,ProcAddr(timerproc,0))
Whileloop 20000
Print Int(Rnd(100000))
EndWhile
Print
Demo Ende.
Waitinput
KillATimer(%hwnd,1)
End
|
|
|
| |
|
|
|
![Jac de Lad: 05.06.2008](.././../../i/a/137932442848a87713b50bf.gif) Jac de Lad | Man sollte anmerken, dass das profane SetTimer bereits den Timer 1 von %hWnd belegt. |
|
|
| Profan² 2.6 bis XProfan 11.1+XPSE+XPIA+XPRR (und irgendwann XIDE) Core2Duo E8500/T2250, 8192/1024 MB, Radeon HD4850/Radeon XPress 1250, Vista64/XP | 05.06.2008 ▲ |
|
|
|
|
![iF: 05.06.2008](.././../../i/a/1.gif) | Man sollte anmerken das ein Aufruf von SetATimer(%hwnd,1,1000,ProcAddr(timerproc,0)) unheimlich gefährlich sein kann und eigentlich unbedingt zu vermeiden ist.
Was ja auch kein Problem mehr ist, dank der subClassProc... ![](.././../../i/s/__upl_ext_1111498539.gif)
Der letzte Parameter statt procAddr() einfach eine Null und die wm_timer-Abfrage in der subClassProc und man ist auf der sicheren Seite.
Und wer glaubt das man damit nicht das selbe Ergebnis erzeugen kann soll sich einfach z.B. Buntank [...] angucken. |
|
|
| |
|
|