Thema: Delphi ampel programmieren

Einzelnen Beitrag anzeigen

mr_emre_d
(Gast)

n/a Beiträge
 
#23

Re: ampel programmieren

  Alt 10. Mär 2009, 00:06
Zitat von Kroko1999:
[delphi]
Procedure wait(const Time:Integer);
var
x: Cardinal;
Begin
x := GetTickCount+Time*400 ;
while GetTickCount<X do
Application.ProcessMessages;
End;
Ähm, so stimmt das nicht ganz! (EDIT-Wenn ich mich nicht irre-das tue ich aber um diese Zeit öfters)

X = GetTickCount + Time*400 -> Wenn ich Time = 1 (sek) setze, hieße das
X = GTC + 1*400 -> 400 != 1000 ( da 1 Sek = 1000 ms ) !

Ich würde Folgendes vorschlagen:
Code:
procedure Wait( const Time: Cardinal ); // Time = Unsigned type -> weil keiner -1 Sek warten will :P
var
  x: Cardinal;
begin
  x := GetTickCount;
  while ( x + Time*1000 >= GetTickCount ) and ( not Application.Terminated ) do
    Application.ProcessMessages;
end;
Code:
not Application.Terminated -> Die Schleife bricht ab, wenn die Anwendung geschlossen wird!
Ich muss noch erwähnen, dass der Luckie (oder wars doch der Negah ) eine bessere Routine gepostet hat.

MfG
  Mit Zitat antworten Zitat