![]() |
Auf andere Aktion warten
Ich habe eine schleife die eine variable Anzahl von Wiederholungen durchlaufen soll.
Doch es soll bei jedem Durchlauf gewartet werden bis ein durch die Schleife erzeugtes Formular wieder geschlossen wird, bzw. ein button auf diesem gedrückt wurde. Bin da auf waitfor gestossen, aber das scheint doch etwas kompliziert und es gibt doch sicherlich was einfacheres. |
Re: Auf andere Aktion warten
Eine Möglichkeit wäre, wenn du ein Fenster mit showmodal aufrufst.
Die Verarbeitung der Schleife geht dann erst weiter wenn dieses Fenster ein Ergebnis geliefert hat (siehe ModalResult) Eine andere Möglichkeit wäre eine weitere Schleife innerhalb der Schleife zu benutzen. Die innere Schleife hätte dann als Abbruchkriterium zum Beispiel einen Variablenwert, den du beim Button-Click setzt. Gruß Minz |
Re: Auf andere Aktion warten
das mit showmodal klingt ganz gut. Ich habe nur das Prob, dass nach schliessen des 2. Formulars nicht mehr in meine schleife zurückgekehrt wird, bzw. mir ist unkar wie ich in die schleife reinschreibe dass er fortfahren soll.
Hier einen Auszug aus meinem Code:
Delphi-Quellcode:
und folgendermassen wird das 2. Formular erstellt:
...
for j:=1 to AnzahlNeuStoer do begin [...] StoerungsmeldungsfensterErzeugen; //Procedure welche 2. Formular erstellt [...] end; ...
Delphi-Quellcode:
procedure TFormStoerung.StoerungsmeldungsfensterErzeugen;
begin Application.Initialize; with TFormStoerung.Create(nil) do try Update; application.CreateForm (TFormStoerungsmeldung, FormStoerungsmeldung); finally Free; end; Application.Run; end; |
Re: Auf andere Aktion warten
versuch mal:
Delphi-Quellcode:
Sollte so schon funzen...
with Stoerung.create(application) do begin
try showmodal; finally free; end; end; Gruß Minz |
Re: Auf andere Aktion warten
*del* hat jetzt keine Meldung gebracht, erst wenn ich beim schliessen "ModalResult:=1;" zurückgebe kommt eine Zugriffsverletzung.
|
Re: Auf andere Aktion warten
Jo du musst das aus der Projektunit entfernen.
Dort wird das Fenster nämlich beim Programmstart erstellt, nur nicht angezeigt. Unser Programmschnipsel will dieses Fenster dann nochmal erstellen. Gruß Minz |
Re: Auf andere Aktion warten
im Eifer des Gefechts habe ich das falsche Formular erzeugen wollen, der 2. Fehler war, dass ich be formclose noch den Free Befehl drin hatte, das verursachte die Zugriffsverletzung.
Thx vielmals @minz |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21: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