![]() |
Warten Befehl?
Mal eine kleine Frage, gibt es einen Befehl, mit dem Delphi z.b. eine Sekunde wartet und dann wird erst der nächste Befehl ausgeführt?
|
AW: Warten Befehl?
Entweder Sleep(1000) oder Delay aus der CodeLib.
|
AW: Warten Befehl?
|
AW: Warten Befehl?
Sleep(), Delay(), Timer, ...
|
AW: Warten Befehl?
[OT] Ätsch, Erster :tongue: [/OT]
|
AW: Warten Befehl?
Wird das in Sekunden gezählt? Bei mir wartet der kein bisschen wenn ich zb. sleep(35) eingebe :(
|
AW: Warten Befehl?
Bei mir is ein Fehler. Wenn ich diesen Code habe:
Delphi-Quellcode:
Dann wechselt der das Bild nich, sondern schließt einfac nur.
procedure TForm1.Image1Click(Sender: TObject);
begin form1.Image1.Picture.LoadFromFile('C:\Users\Raphael\Pictures\closeklick.ico'); // Hier soll eine Sekunde gewartet werden. sleep(60); form1.Image1.Picture.LoadFromFile('C:\Users\Raphael\Pictures\close.ico'); // Hier soll eine Sekunde gewartet werden. sleep(60); application.Terminate; end; end. Wenn ich nur den ersten Bildwechsel drinhabe und den zweiten und das beenden rausnehme, wechselt er. Woran kann das liegen? |
AW: Warten Befehl?
Sleep pausiert Programmausführungen gemäß dem Parameter Millseconds.
![]() |
AW: Warten Befehl?
Zitat:
|
AW: Warten Befehl?
Hatte ich doch erwähnt xD
Na egal. Jedenfalls wollte ich, dass man auf ein Kreuz klicken kann und dieses Leuchtet dann auf und dann wird es wieder normal und dann wird das Programm beendet^^ Das habe ich mit Bildern gemacht. Da kommt dann das Problem, wenn ich nur den ersten Bildwechsel drin habe, wechselt das Bild zum leuchtenden, wenn ich dann aber den zweiten Bildwechsel drin habe und das Programm schließen, dann schließt sich das Programm einfach nur,ohne die Bilder zu wechseln :( |
AW: Warten Befehl?
Und hättest du die Hilfe konsultiert, wüsstest du dass ein Wert von 35 bei sleep bedeutet, dass 35/1000 Sekunden geawrtet wird, was für einen Mensch kaum sichtbar ist. Deshalb hat Detlef oben ja Sleep(1000) geschriben (also 1 Sekunde)
|
AW: Warten Befehl?
Ich hab die Warte zeit ja erhöht, trotzdem passiert nichts :(
|
AW: Warten Befehl?
Auf was hast du den erhöht?
|
AW: Warten Befehl?
Damit ich ganz genau sehe wie das passiert auf 3000.
Aber das klappt immer nur, wenn der erste Bildwechsel drin is und sonst nichts -.- |
AW: Warten Befehl?
Ich glaube eher, dass das Bild nicht neu gezeichnit wird. Zudem wartet Sleep() aktiv, Delay() wäre besser
Oder in diesem Fall ein Timer |
AW: Warten Befehl?
Bei Sleep friert das Programm ein, arbeitet also auch keine Botschaften mehr ab. Eine Quick'n Dirty-Lösung:
Delphi-Quellcode:
NaechstesBild; //wie auch immer Du das implementiert hast
Application.ProcessMessages; Sleep(1000); |
AW: Warten Befehl?
Delay erkennt der bei mir erst gar nich xD
Und was genau macht: Application.ProcessMessages; ? Das klappt nämlich und ch möchte nicht einfach was in meinem Code haben, das ich nicht kapier^^ Dankeaber schnomal :) |
AW: Warten Befehl?
Delphi-Quellcode:
gibt Rechenzeit ab und sorgt dafür, dass Windowsnachrichten verarbeitet werden. D.H. das Image malt sich neu.
Application.ProcessMessages;
Zu Delay() schau mal bei #3 |
AW: Warten Befehl?
Schon mal die Hilfe konsultiert?
Delay ist eine selbst geschriebene Prozedur, zu finden in der CodeLib hier im Forum. |
AW: Warten Befehl?
Delay kann er auch gar nicht kennen, das ist eine Routine aus der Code-Library (wurde aber auch gesagt und sogar verlinkt). Und zu ProcessMessages lohnt sich ein Blick in die Online-Hilfe von Delphi oder in die
![]() |
AW: Warten Befehl?
ich hab mir folgende delay_procedure geschrieben, die
so funktioniert wie ich mir das vorstelle.
Delphi-Quellcode:
procedure mein_delay(msec:longint);
var Start,Stop:extended; begin start := gettickcount; repeat stop := gettickcount; application.processmessages; until (stop - start ) >= msec; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz