OT: Időzítés win-ban (Delphi)
attila.nagy at ni.com
attila.nagy at ni.com
Thu Mar 13 06:49:01 CET 2003
Ki ismeri az alábbiakat? Mennyire működik? (Bocs, ha HTML-ben menne át!
Beállítottam a plain text-et.)
Amikor valamit megadott időközönként, vagy egy adott idő múlva végre akarunk hajtani, használhatjuk a Delphi Timer
komponensét. Azonban van más lehetőség is. Az operációs rendszer rendelkezik egy multimédiás időzítő
szolgáltatással, és képes több időzítőt is futtatni egyidejűleg. Minden időzítő külön szálon fut. Ilyen időzítőket
mi is indíthatunk, vagy megállíthatunk már meglévőket.
A multimédiás időzítő felbontása állítható, ezzel sokkal pontosabb
ütemezést tesz lehetővé, mint más időzítők.
Egy új időzítőt a timeSetEvent API függvény segítségével indíthatunk el. A
függvény használatához a uses listában fel kell sorolnunk az MMSystem unit
nevét is.
(Embedded image moved to file: pic29358.gif)timeSetEvent
function timeSetEvent(
uDelay,
uResolution: UINT;
lpFunction: TFNTimeCallBack;
dwUser: DWORD;
uFlags: UINT
): MMRESULT;
Elindít egy új időzítőt.
Paraméterek
uDelay
A késleltetés értéke, ezredmásodpercben.
uResolution: UINT
Az időzítés felbontása, ezredmásodpercben. Minél kisebb értéket adunk meg,
az időzítés annál pontosabb lesz. Növekvő értékek esetén a pontosság
csökken.
lpFunction: TFNTimeCallBack
Egy Callback függvény, amely tartalma akkor fut le, ha az uDelay-ben
megadott idő letelik. A függvény neve tetszőleges lehet, de az alábbi
paraméterlistával kell rendelkeznie.
procedure DoTimer(uTimerID,uMessage: UINT; dwUser,dw1,dw2: DWORD) stdcall;
dwUser: DWORD
Egy érték átadását teszi lehetővé a Callback függvénynek.
uFlags: UINT
Az időzítő működését szabályozza. TIME_ONESHOT ? az időzítő csak egyszer
fut le, TIME_PERIODIC ? periodikus futást eredményez, míg le nem állítjuk.
Visszatérési érték
Ha az időzítő elindítása sikeres volt, a visszatérési érték az időzítő
azonosítója, ellenkező esetben 0.
Egy futó időzítőt a timeKillEvent függvénnyel állíthatunk le.
(Embedded image moved to file: pic26962.gif)timeKillEvent
function timeKillEvent(
uTimerID: UINT
): MMRESULT;
Egy futó időzítő megállítására szolgál.
Paraméterek
uTimerID: UINT
Az időzítő azonosítója.
Visszatérési érték
Ha az időzítő leállítása sikeres volt, 0 értékkel tér vissza.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic29358.gif
Type: image/gif
Size: 506 bytes
Desc: not available
Url : http://www.centralnet.hu/pipermail/elektro/attachments/20030313/57f5fea7/attachment.gif
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pic26962.gif
Type: image/gif
Size: 506 bytes
Desc: not available
Url : http://www.centralnet.hu/pipermail/elektro/attachments/20030313/57f5fea7/attachment-0001.gif
More information about the Elektro
mailing list