Entwickler-Ecke

Windows API - Problem: Herunterfahren per Timer !


Querscheck - Di 15.10.02 20:08
Titel: Problem: Herunterfahren per Timer !
Ich hab einen Button und einen Timer erstellt. Nun soll per Knopfdruck der Timer heruntergezählt werden, und dann Windows beendet werden.
Mein Code:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
begin
Timer1.Tag:=10;
Timer1.Interval:=1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Tag:=Timer1.Tag-1;
Button1.Caption:='Noch '+IntToStr(Timer1.Tag)+' sec';
if Timer1.Tag<1 then ExitWindowsEx(EWX_SHUTDOWN);    :!: 
end;

end.


Aber irgendwie Funzt der nich. In der Zeile die ich mit einem Ausrufezeichen( :!: ) makiert habe wird mir ein fehler angezeigt! Weiss nich warum, was hab ich falsch gemacht??
Gibt es noch einen besseren Code?? :?:
Wäre nett wenn ihr mir helfen würdet! :wink:
Ich bin nämlich noch ein Newbie!

Danke

Querscheck


DeCodeGuru - Di 15.10.02 20:49

In der Zeile, die dir makiert wurde, fehlt ein Parameter. Die Funktion ExitWindowsEx erwartet 2 Parameter.

Probiers mal mit folgender Veränderung:


Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
procedure TForm1.Button1Click(Sender: TObject); 
begin
Timer1.Tag:=10;
Timer1.Interval:=1000;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Tag:=Timer1.Tag-1;
Button1.Caption:='Noch '+IntToStr(Timer1.Tag)+' sec';
if Timer1.Tag<1 then ExitWindowsEx(EWX_SHUTDOWN,0);
end;


Hier haste dann nochmal einen Links auf die MSDN mit den Infos zu ExitWindowsEx: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sysinfo/base/exitwindowsex.asp

Ich hoffe, dass dir das hilft.