Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Warten Befehl? (https://www.delphipraxis.net/156116-warten-befehl.html)

raysto 20. Nov 2010 14:31

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?

DeddyH 20. Nov 2010 14:33

AW: Warten Befehl?
 
Entweder Sleep(1000) oder Delay aus der CodeLib.

toms 20. Nov 2010 14:33

AW: Warten Befehl?
 
Hallo

Hier im Forum suchenSleep, Hier im Forum suchenDelay etc.

mkinzler 20. Nov 2010 14:33

AW: Warten Befehl?
 
Sleep(), Delay(), Timer, ...

DeddyH 20. Nov 2010 14:34

AW: Warten Befehl?
 
[OT] Ätsch, Erster :tongue: [/OT]

raysto 20. Nov 2010 14:38

AW: Warten Befehl?
 
Wird das in Sekunden gezählt? Bei mir wartet der kein bisschen wenn ich zb. sleep(35) eingebe :(

raysto 20. Nov 2010 14:41

AW: Warten Befehl?
 
Bei mir is ein Fehler. Wenn ich diesen Code habe:
Delphi-Quellcode:
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.
Dann wechselt der das Bild nich, sondern schließt einfac nur.
Wenn ich nur den ersten Bildwechsel drinhabe und den zweiten und das beenden rausnehme, wechselt er. Woran kann das liegen?

toms 20. Nov 2010 14:42

AW: Warten Befehl?
 
Sleep pausiert Programmausführungen gemäß dem Parameter Millseconds.
http://docwiki.embarcadero.com/VCL/de/SysUtils.Sleep

Luckie 20. Nov 2010 14:44

AW: Warten Befehl?
 
Zitat:

Zitat von raysto (Beitrag 1062773)
Bei mir is ein Fehler. Wenn ich diesen Code habe:

Verrätst du uns auch was für ein Fehler das sein soll oder müssen wir raten?

raysto 20. Nov 2010 14:50

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 :(

mkinzler 20. Nov 2010 14:52

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)

raysto 20. Nov 2010 14:57

AW: Warten Befehl?
 
Ich hab die Warte zeit ja erhöht, trotzdem passiert nichts :(

mkinzler 20. Nov 2010 14:58

AW: Warten Befehl?
 
Auf was hast du den erhöht?

raysto 20. Nov 2010 15:01

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 -.-

mkinzler 20. Nov 2010 15:03

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

DeddyH 20. Nov 2010 15:05

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);

raysto 20. Nov 2010 15:07

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 :)

mkinzler 20. Nov 2010 15:11

AW: Warten Befehl?
 
Delphi-Quellcode:
Application.ProcessMessages;
gibt Rechenzeit ab und sorgt dafür, dass Windowsnachrichten verarbeitet werden. D.H. das Image malt sich neu.

Zu Delay() schau mal bei #3

Luckie 20. Nov 2010 15:12

AW: Warten Befehl?
 
Schon mal die Hilfe konsultiert?

Delay ist eine selbst geschriebene Prozedur, zu finden in der CodeLib hier im Forum.

DeddyH 20. Nov 2010 15:12

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 DP-Referenz.

wolfgang_SV 20. Nov 2010 16:49

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