![]() |
Schleife abbrechen
Hallo,
ich möchte gern mit Hilfe einer Checkbox eine Schleife abbrechen können. Nur leider bleibt die form nicht aktiv. Das ist die Procedure:
Code:
Wo ist der Fehler?
procedure TForm1.SpeedButton1Click(Sender: TObject);
var url : string; Zaehler, Anzahl : integer; begin speedbutton1.visible:=false; Anzahl:=strtoint(edit2.text); Zaehler:=0; repeat ShellExecute(Application.Handle,'open','Hilfsprogramm.exe',''{Parameter},'',SW_HIDE); sleep(30000); url:=edit1.text; ShellExecute(Handle,'open',PAnsiChar(url),nil,nil,SW_HIDE); sleep(5000); Zaehler:=Zaehler+1; Application.ProcessMessages; until (Zaehler=Anzahl) or (Checkbox1.checked); speedbutton2.visible:=true; showmessage('Prozess abgeschlossen'); end; Danke im Voraus! |
Re: Schleife abbrechen
Zitat:
|
Re: Schleife abbrechen
liegt es also einzig und allein an der zeit?
diese zeitspanne ist aber notwendig, weil das ausführen von "hilfsprogramm" in etwa so lange dauert. wie kann ich das problem lösen? |
Re: Schleife abbrechen
ShellExecuteEx und WaitForSingleObject sollten dir helfen. Damit kannst du in deinem Programm fortführen, sobald das externe Programm beendet ist.
|
Re: Schleife abbrechen
Danke, ich werds gleich mal ausprobieren
|
Re: Schleife abbrechen
Zitat:
Edit: WaitforsingelObject dürfte nicht helfen. Das bleibt das Programm ja genauso hängen. :gruebel: |
Re: Schleife abbrechen
Ich bin für MsgWaitForMultipleObjects.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:26 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