Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Auf andere Aktion warten (https://www.delphipraxis.net/11364-auf-andere-aktion-warten.html)

Praktikant 5. Nov 2003 10:24


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.

Minz 5. Nov 2003 12:31

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

Praktikant 5. Nov 2003 13:17

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:
...
    for j:=1 to AnzahlNeuStoer do
    begin
      [...]
      StoerungsmeldungsfensterErzeugen;           //Procedure welche 2. Formular erstellt
      [...]
    end;
...
und folgendermassen wird das 2. Formular erstellt:
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;

Minz 5. Nov 2003 14:52

Re: Auf andere Aktion warten
 
versuch mal:

Delphi-Quellcode:
with Stoerung.create(application) do begin
  try
    showmodal;
  finally
    free;
  end;
end;
Sollte so schon funzen...

Gruß Minz

Praktikant 5. Nov 2003 15:07

Re: Auf andere Aktion warten
 
*del* hat jetzt keine Meldung gebracht, erst wenn ich beim schliessen "ModalResult:=1;" zurückgebe kommt eine Zugriffsverletzung.

Minz 5. Nov 2003 15:10

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

Praktikant 5. Nov 2003 15:23

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