MDI bei Firemonkey?
Hallo,
ich habe ein bestehendes Projekt, welches aus 'zig Formularen besteht. MainForm ruft Form2, diese Form3 usw. auf, das jeweils aufrufende Formular wird dabei unsichtbar gemacht, es ist also nur das aufgerufene Formular sichtbar. Bei Andriod passen sich ja alle Formulare der Bildschirmgröße an, unter Windows habe ich dann sehr unschöne verschieden große Formulare. Meine Idee war als erstes alle Unterformulare in Frames umzubauen, dabei habe ich aber feststellen müssen, dass das mit seehr viel Arbeit verbunden ist! Nächste Idee war MDI-Anwendung, geht aber scheinbar mit Firemonken Windows/Android-Anwendung nicht. Dritte Variante Unterformular erzeugen und Parent auf Hauptform setzen, das gibt zwar keine Compilerfehler, funktioniert aber nicht, es wird ein neues, von Mainform unabhängiges Formular angezeigt! Hat jemand eine Idee wie ich das bestehende Projekt so umstellen kann, dass für den Anwender nur ein Mainform besteht dessen Inhalt in Unterform1, Unterform2, ... wechselt? Danke Ciao Stefan |
AW: MDI bei Firemonkey?
Eine Möglichkeit wäre die Unterformulare ins Hauptformular einzubetten.
So hast du das Hauptformular immer als Überrahmen/Container und die einzelnen Unterformulare sind Unterelemente davon. |
AW: MDI bei Firemonkey?
Zitat:
Createn und Mainform als Parent zuweisen funktioniert ja nicht! Ciao Stefan |
AW: MDI bei Firemonkey?
Liste der Anhänge anzeigen (Anzahl: 1)
Mal auf die Schnelle in fünf Minuten zusammengebastelt:
|
AW: MDI bei Firemonkey?
Zitat:
Ich habe mir einen kleinen Window-Handler geschrieben. Jedes Form hat als erstes ein TLayout drauf und wenn ich das Fenster in einem Container (MainForm) darstellen will, dann erhalt dieses: TLayout.Parent := MainForm.Layout. GGF. Muss ich - falls da schon ein Form liegt, natürlich diesen Parent erst auf NIL setzen. So kann ich auch ganz einfach Forms ausdocken(Windows). Einfach ein Dockfenster erzeugen und den Parent setzen, fertig. Mavarik |
AW: MDI bei Firemonkey?
Zitat:
Ciao Stefan Nachtrag: Projekt umgestellt, läuft, aber: Ich möchte die Unterformulare jedes mal Createn (unter verfügbare Formulare im Projekt), das funktioniert, jedoch wenn ich im Unterformular einen Button mit Self.Free einbaue, verschwindet das Unterformular aber das Hauptfenster und das Programm lässt sich nicht mehr mit "X" schließen! Edit2: Auf der Unterform habe ich einen Button der diese Free'd. Danach sind die Minimieren/Maximieren/Schließen Buttons von FormMain inaktiv, warum? Ein Button auf FormMain mit Close beendet das Programm ohne Probleme. Ciao Stefan |
AW: MDI bei Firemonkey?
Wenn der Button Teil des Unterformulars ist und der Button-Click das Formular zerstört, dann wird er auch alle darin liegenden Objekte zerstören, also auch den Button.
Das System hat dann keinen Rückspringpunkt mehr für das Button-Event und hängt dann (teilweise). Du musst das Schließen innerhalb des Unterformulars entweder mit Botschaften regeln oder von außerhalb des zu zerstörenden Formulars antriggern. |
AW: MDI bei Firemonkey?
Danke für den Hinweis!
Ich dachte das das keine Probleme bereiten könnte, denn bisher (mit den getrennten Formularen) zerstöre ich ja auch innerhalb des Formulars durch einen auf dem Formular liegenden Button. Also ala FreeAndNil(UnterForm) Hauptform.Activate Dann muss ich mir mal was ausdenken, wie ich dem aufrufenden Form mitteilen kann dass es sein Unterformular aus den Layout entfernen und zerstören kann. Ciao Stefan |
AW: MDI bei Firemonkey?
Du könntest auch folgendes probieren:
- anstatt
Delphi-Quellcode:
.Free
Delphi-Quellcode:
aufrufen
.Release
oder -
Delphi-Quellcode:
aufrufen und im OnClose des Formulars
.Close
Delphi-Quellcode:
setzen
Action := caFree
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 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