Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Modales Fenster schliessen - anderes öffnen


gd0123456 - Mi 12.02.14 00:52
Titel: Modales Fenster schliessen - anderes öffnen
Hi,

möchte einfach mittels Button Click ein Fenster öffnen mit showmodal. Sobald das andere Fenster geöffnet wurde soll das vorherige Fenster jedoch geschlossen werden.

Oder kann man wie schafft man es dass das fenster den Focus behält wenn man auf eine andere form klickt? würde auch schon helfne, weil mit showmodal bleibt ja der Focus. nur mit Show kann man es ja wegklicken.

Bitte um kurze Hilfe, blick gerade nicht durch.


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Mi 12.02.2014 um 00:13

Moderiert von user profile iconNarses: Beiträge zusammengefasst

Mit ModalResult funktioniert es leider auch nicht so. Hat jemand eine Idee?


WasWeißDennIch - Mi 12.02.14 09:16

user profile icongd0123456 hat folgendes geschrieben Zum zitierten Posting springen:
Bitte um kurze Hilfe, blick gerade nicht durch.

Das geht mir genauso, was ist denn das Problem? Das ist mir auch nach mehrmaligem Lesen nicht klar geworden.


baumina - Mi 12.02.14 09:21

Ich denke das Problem liegt in der Planung des Programms. Mein Vorschlag wäre folgender:

Hauptformular -> Button-Klick -> ShowModal(1. Unterformular)
Unterformular 2 Buttons mit verschiedenen Modalresults.
Hauptformular : ModalResult des Unterformulars auswerten und ggf. 2. Unterformular öffnen


jasocul - Mi 12.02.14 11:19

user profile icongd0123456 hat folgendes geschrieben Zum zitierten Posting springen:
möchte einfach mittels Button Click ein Fenster öffnen mit showmodal. Sobald das andere Fenster geöffnet wurde soll das vorherige Fenster jedoch geschlossen werden.

Bist du sicher, dass das vorherige Fenster geschlossen werden soll? Oder soll es nur nicht mehr sichtbar sein?
In dem Fall "nicht sichtbar":

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
Hide;
Try
  DeineZweiteForm.ShowModal;
Finally
  Show;
end;

Der Try-Finally-Block ist notwendig, da eine nicht abgefangene Exception in der zweiten Form sonst dazu führen kann, dass plötzlich gar kein Fenster mehr zu sehen ist.

Source ist ohne Kontrolle hier reingetippt.