![]() |
procedure warten lassen
Wie kann ich eine Prozedur für eine beliebige zeit immer kurz unterbrechen zb während einer schleife, damit diese nicht blitzartig abläuft und wie kann ich währenddessen immer noch einen button benutzen, der am besten auch noch diese schleife anhalten kann?
|
Re: procedure warten lassen
|
Re: procedure warten lassen
Wie kann ich jetzt noch während einer laufenden Prozedur einen Button zum funktionieren bringen. Ich würd nämlich auch gerne mein Programm vor beendigung schließen können oder einfach aus der Schleife ausbrechen können, aber erst mal danke für die schnelle Antwort.
|
Re: procedure warten lassen
mit dem delay sollte das klappen.
|
Re: procedure warten lassen
entweder:
Delphi-Quellcode:
oder
Var Abbruch: Boolean;
Procedure Delay(msecs: Integer); Var FirstTickCount: LongInt; Begin FirstTickCount := GetTickCount; Repeat Application.ProcessMessages; Until ((GetTickCount - FirstTickCount) >= LongInt(msecs)); End; Procedure TForm1.Button1Click(Sender: TObject); Begin Abbruch := True; End; Procedure TForm1.Button2Click(Sender: TObject); Var i: Integer; Begin Abbruch := False; For i := 1 to 1000 do Begin Label1.Caption := IntToStr(i); Delay(100); If Abbruch Then Break; End; End;
Delphi-Quellcode:
oder ...
Var Abbruch: Boolean;
Procedure TForm1.Button1Click(Sender: TObject); Begin Abbruch := True; End; Procedure TForm1.Button2Click(Sender: TObject); Var i: Integer; Begin Abbruch := False; For i := 1 to 1000 do Begin Label1.Caption := IntToStr(i); Application.ProcessMessages; Sleep(100); If Abbruch Then Break; End; End; |
Re: procedure warten lassen
Zitat:
|
Re: procedure warten lassen
Ihr solltet in euren delay-Prozeduren noch auf die WM_QUIT prüfen ;)
|
Re: procedure warten lassen
hab ich mich auch immer geärgert, dass man das programm nicht verlassen konnte, und ich wusste damals nicht warum. heute wo ich es verstehe, hab ich was gegen ProcessMessages.
|
Re: procedure warten lassen
ich würde einen Thread empfehlen, für sowas gibts die ja damit man in der Anwendung weiter klicken kann während etwas anderes im Hintergrund noch läuft
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:19 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