Einzelnen Beitrag anzeigen

kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#1

Problem mit modalen Dialogen

  Alt 16. Nov 2010, 10:36
Hallo.

Ich habe ein Problem, welches ich meines Wissens erst mit Delphi2010 habe. Es geht um modale Dialoge und deren Sichtbarkeit. Im Anhang habe ich mal ein Testszenario erstellt, welches das Problem demonstriert. Definiert man die Compilerdirektive "WORKING", funktioniert es, wie es sollte.

Zum Problem:

Ich habe in meiner DPR folgenden Aufbau:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;

  SecondForm := TSecondForm.Create(Application);

  Application.CreateForm(TMainForm, MainForm);

  Application.Run;
end.
Die "SecondForm" wird dabei VOR dem eigentlichen Hauptformular erstellt, was in der realen Applikation der Einstellunsdialog ist, der bereits alle Daten in ein internen Objektmodell läd, welches das Hauptformular bereits beim Erzeugen benötigt.

Zum Demonstrationszwecken ruft die "SecondForm" ein weiteres Formular auf, das nur einen einfachen Text enthält (in der realen Applikation ist das z.Bsp. ein selbstgebauter Dialog).

Nun das Problem: Ruft man in der "SecondForm" mittels Button-Klick dieses dritte Formular auf, erscheint auf einmal wieder die "MainForm". Ist diese per Einstellung nun auf "Maximized" eingestellt, verschwindet die "SecondForm" gänzlich. WARUM?

Erzeugt man die "SecondForm" aber auf herkömmlichen Wege, also so:

Delphi-Quellcode:
begin
  Application.Initialize;
  Application.MainFormOnTaskbar := True;

  Application.CreateForm(TMainForm, MainForm);
  Application.CreateForm(TSecondForm, SecondForm);

  Application.Run;
end.
...funktioniert es! Ich bilde mir ein, das dieses Verhalten mit Delphi2009 und sicher mit Delphi7 so NICHT war.

Was kann ich tun, das sich das Programm so verhält, wie es soll (also früher)?

Vielen Dank & lieben Gruß,
Marc
Angehängte Dateien
Dateityp: zip modal_problem.zip (2,8 KB, 4x aufgerufen)

Geändert von mkinzler (16. Nov 2010 um 11:07 Uhr) Grund: Code-Tag durch delphi-Tag ersetzt
  Mit Zitat antworten Zitat