AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Modales Fenster beim Schliessen eines Modalen Fensters öffne
Thema durchsuchen
Ansicht
Themen-Optionen

Modales Fenster beim Schliessen eines Modalen Fensters öffne

Ein Thema von torud · begonnen am 10. Apr 2005 · letzter Beitrag vom 10. Apr 2005
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Modales Fenster beim Schliessen eines Modalen Fensters öffne

  Alt 10. Apr 2005, 08:08
Hallo Wissende!

Ich habe ein Formular mit ShowModal geöffnet und möchte dieses Schliessen und direkte danach ein anderes Formular mit Showmodal aufrufen.

Leider klappt das nicht ganz wunschgemäss. Wenn ich dieses Fenster aus dem 1. modalen Formular beim Schliessen aufrufe, wird das 2. Formular modal angezeigt noch bevor das 1. Formular wirklch geschlossen wurde.

Welche Lösung schlagt Ihr dafür vor?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von mschaefer
mschaefer

Registriert seit: 4. Feb 2003
Ort: Hannover
2.032 Beiträge
 
Delphi 12 Athens
 
#2

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 08:30
Moin, Moin,

entweder modales Fenster 1 auf visible = false stellen bevoer Modal 2 aufgerufen wird oder Modal 2 vom Hauptaufrufspunkt aus aufrufen wo Du auch Modal 1 her aufgerufen hast.

Grüße // Martin
Martin Schaefer
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 08:44
Professionell ist die Lösung mit nur einer Kontrollinstanz.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 10:34
Hai torud,

wie sieht denn dein Quellcode aus?

Wenn ich das so mache sieht es eigenltlich richtig aus
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  newFormClass : TFormClass;
  newForm : TForm;
begin
  newFormClass := TForm2; // Form 2
  newForm := newFormClass.Create(self);
  newForm.ShowModal; // Modal anzeigen
  newForm.Free;

  newFormClass := TForm3; // Form 3
  newForm := newFormClass.Create(self);
  newForm.ShowModal; // Modal anzeigen
  newForm.Free;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 12:22
Hallo!

Also mein derzeitiger Code sieht so aus:

Delphi-Quellcode:
procedure Tassi_new_projekt.btn_prj_createClick(Sender: TObject);
begin
     self.Close;
     assi_editor.ShowModal;
end;
Tassi_new_projekt ist das Modale Formular 1 und wenn dort eine Checkbox aktiviert ist, soll direkt ein anderer Assistent aufgerufen werden => assi_editor!

Das mit dem Visible:=flase ist nicht mein Ding. Das wäre nicht so edel, denke ich. Im Notfall mache ich es so, dass ich dann dem Hauptform einen Befehl übergebe. Ich hoffe nur, dass der Befehl dann nicht noch vor dem Close ausgeführt wird.

Ansonsnten werde ich mal den Vorschlag von Stephan in Erwägung ziehen!
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 12:31
Zitat von torud:
...Tassi_new_projekt ist das Modale Formular 1 und wenn dort eine Checkbox aktiviert ist, soll direkt ein anderer Assistent aufgerufen werden ...
Das bedeutet das zweite Modale Fenster soll nur aufgerufen werden wenn in dem ersten eine bestimmte Bedingung zutrifft (CheckBox).
Dann könntest Du es so machen:
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  myForm2 : TForm2;
  myForm3 : TForm3;
  showForm3 : Boolean;
begin
  myForm2 := TForm2.Create (self);
  try
    myForm2.ShowModal;
    showForm3 := myForm2.CheckBox1.Checked;
  finally
    myForm2.Free;
  end;
  if (showForm3) then
  begin
    myForm3 := TForm3.Create(self);
    try
      myForm3.ShowModal;
    finally
      myForm3.Free;
    end;
  end;
end;
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#7

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 12:40
Mille Gracie!

Ich muss dann eben die 2 Formulare aus der automatisierten Erzeugung herausnehmen, damit sie nicht doppelt erzeugt werden - richtig???
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.252 Beiträge
 
Delphi 2006 Professional
 
#8

Re: Modales Fenster beim Schliessen eines Modalen Fensters ö

  Alt 10. Apr 2005, 12:44
Zitat von torud:
...Ich muss dann eben die 2 Formulare aus der automatisierten Erzeugung herausnehmen, ...
Jup.
Ich mache das immer so. In der Regel wird bei mir nur die MainForm automatisch erzeugt (eventuell noch ein TDatenModul wenn es eine Datenbank Anwendung ist).
Wenn alle Forms beim Programmstart erzeugt werden muss nämlich auch für alle der Speicher reserviert werden. Und das obwohl sie womöglich nie gebraucht werden
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz