Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Timer ändern, stoppen mit SetTimer (https://www.delphipraxis.net/107345-timer-aendern-stoppen-mit-settimer.html)

d1ng0d0gt0r 26. Jan 2008 02:51


Timer ändern, stoppen mit SetTimer
 
Hi,

Folgenden Code verwende ich um einen Timer jede Sekunde eine Procedur namens TimerProc ablaufen zu lassen:
Delphi-Quellcode:
procedure TimerProc(Wnd:HWnd;Msg,TimerID,dwTime:DWORD);stdcall;
begin
   MessageBox(0,pchar(IntToStr(TimerID)),'ff',MB_OK);
end;
//.......

SetTimer(0,0,3000,@TimerProc);
//......
Wie, bzw ist es möglich den Timer nun zu stoppen oder die Intervalle zu ändern??

Gruß der_hans

//EDIT: Ok wie man den Timer beendet habe ich gerade beim durchstöbern des Forums, herausgefunden:
Delphi-Quellcode:
KillTimer(0, ID_TIMER);
Nun würd ich noch gerne wissen wie man den Inervall ändert, weil immer einen neuen Timer zu starten ist nicht Sin der Sache :)

// Edit:
Hat sich auch erledigt, man muss beim ersten Setzen des Timers einfach den Rückgabewert, also das TimerHandle, in einem Integer speichern, und das Handle einfach beim nächsten Aufrufen von:
Delphi-Quellcode:
SetTimer(0,TimerHandle,3000,@TimerProc);
mit übergeben, dann wird der Wert überschrieben.

Eigendlich selbsterklärend.

himitsu 26. Jan 2008 23:06

Re: Timer ändern, stoppen mit SetTimer
 
man hätte auch einfach den "alten" Timer löschen (KillTimer) und einen "neunen" mit neuer Zeit starten können :angel2:
(PS: diese "billige" Variante nutzt TTimer, wenn man .Intervall einen neuen Wert zuweißt)


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz