Einzelnen Beitrag anzeigen

hathor
(Gast)

n/a Beiträge
 
#50

AW: Timer in einer Unit

  Alt 23. Mär 2015, 08:14
Wer als Anfänger auf diesen Thread kommt, wird am Ende völlig verwirrt sein.
Abschliessend Beispiele, die bei mir funktionieren
- Console(Memo1-Befehle durch WriteLn ersetzen) + VCL - (WIN8.1, XE7):

Delphi-Quellcode:
procedure MyTimer(hWnd: HWND; uMsg: Integer; idEvent: Integer; dwTime: Integer); stdcall;
begin Form1.Memo1.Lines.Add('Timer Event: '+ INTTOSTR(idEvent)); WinApi.Windows.Beep(1800,50); end;

// global var id1, id2, id3 : DWORD;
procedure TForm1.Button11Click(Sender: TObject);
begin
if id1=0 then id1 := SetTimer(0, 1, 1000, @MyTimer); Memo1.Lines.Add(INTTOSTR(id1)); //1000msec
if id2=0 then id2 := SetTimer(0, 1, 2000, @MyTimer); Memo1.Lines.Add(INTTOSTR(id2)); //2000msec
if id3=0 then id3 := SetTimer(0, 1, 3000, @MyTimer); Memo1.Lines.Add(INTTOSTR(id3)); //3000msec
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
KillTimer(0, id1); Memo1.Lines.Add(INTTOSTR(id1)); id1:=0;
KillTimer(0, id2); Memo1.Lines.Add(INTTOSTR(id2)); id2:=0;
KillTimer(0, id3); Memo1.Lines.Add(INTTOSTR(id3)); id3:=0;
end;
Code wegen #51 korrigiert.

Geändert von hathor (23. Mär 2015 um 12:16 Uhr)
  Mit Zitat antworten Zitat