![]() |
Problem mit "Sleep"-Anweisung
Hallo
ich habe ein Problem mit der Sleep-Anweisung. In meinem Programm, soll ein Label, das bei FormCreate auf visible := false gesetzt wird sichtbar gemacht werden. Aber nur für 2 Sekunden und dann wieder unsichtbar werden. Ich habe es folgendermaßen versucht:
Delphi-Quellcode:
Das funktioniert aber irgendwie nicht. :gruebel: Das Label wird icht angezeigt.
label1.visible := true;
sleep(2000); label1.visible := false; Wenn ich zu Kontrollzwecken vor das Sleep eine Showmessage einbaue, dann wird das Label angezeigt, wahrscheinlich, weil dann die Sleep-Anweisung nicht unmittelbar hinter der visible := true Anweisung kommt. Kann mir jemand sagen warum das nicht funktioniert bzw. wie das funktioniert? Mit freundlichen Grüßen bender251 |
Re: Problem mit "Sleep"-Anweisung
Mach mal vor und hinter dem Sleep ein Application.ProcessMessages.
|
Re: Problem mit "Sleep"-Anweisung
Das funktioniert nicht weil sleep dein Programm ganz lahm legt. Lösung:
![]() |
Re: Problem mit "Sleep"-Anweisung
@Daniel B: Cooooool...............Vielen Dank für die Antwort. Klappt prima. :cheers:
Nur mal interessehalber: Was bewirkt dieses Application.Processmessages? Die Hilfe gibt da nicht so die Auskunft zu, wenn ich nichts übersehen habe. Gruß bender251 |
Re: Problem mit "Sleep"-Anweisung
Das unterbricht das Programm, damit Windows auf Ereignisse reagieren kann.
|
Re: Problem mit "Sleep"-Anweisung
Junge geht das heir schnell mit den Antworten. :thuimb:
Vielen Dank an alle. Gruß bender251 |
Re: Problem mit "Sleep"-Anweisung
Ähm, umgekehrt. Es unterbricht eine Routine im eigenen Programm, damit das eigene Programm dazu kommt die MessageLoop abzuarbeiten und so auf Nachrichten von Windows reagieren kann.
Wozu soll ich mein Programm unterbrechen, damit Windows auf Nachrichten reagiert? :mrgreen: |
Re: Problem mit "Sleep"-Anweisung
Liste der Anhänge anzeigen (Anzahl: 1)
Hi Luckie,
wieso soll das nicht funktionieren?
Delphi-Quellcode:
Procedure TForm1.Button1Click(Sender: TObject);
Begin Label1.Visible := True; Application.ProcessMessages; Sleep(2000); Label1.Visible := False; End;
Delphi-Quellcode:
Label1.Visible := True;
Application.ProcessMessages; Sleep(2000); Label1.Visible := False; Application.ProcessMessages; {nachfolgende Anweisungen} |
Re: Problem mit "Sleep"-Anweisung
Habe ich irgendwo, irgendwas geschrieben, dass was nicht funktionieren soll? Die Erklärung von the_master war nur verkehrtrum.
|
Re: Problem mit "Sleep"-Anweisung
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:40 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