Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi MDI oder Alternativen? (https://www.delphipraxis.net/105881-mdi-oder-alternativen.html)

meiner einer 1. Jan 2008 15:46


MDI oder Alternativen?
 
Hallo Leute,

ich bin auf der Suchen nach einer einfachen und handlichen Möglichkeit separat erstelle Formulare in einer Anwendung zusammenzufassen.

Also mein komkretes Beispiel:
Ich habe in 50 verschiedenen Projekten 50 verschiedene Forms programmiert, Form1 enthällt z. B. eine Tabelle und Buttons zum Ausfüllen und Speichern von Werten, Form2 eine Bildersammlung, Form3 Memos und Editfelder usw. Jedes Form ist für sich ein eigenes funktionierendes Programm.
Jetzt möchte ich ein 51. Projekt wo im Form51 ein PageControl und ein ThreeView vorkommen. Je nach der Wahl des Knoten im ThreeView sollen im PageControl eine oder mehrere TabSheets geladen werden, wobei je nach Wahl des Knoten z. B. im TabSheet1 Form8 und im TabSheet2 Form48 funktionsfähig dargestellt sein sollen. Bei Wahl eines anderen Knotens sollen alle bishereigen Tabsheets und Forms geschlossen werden und die neue Selektion geöffnet werden können. (ich hoff ich hab mich halbwegs klar artikuliert?!)

Und hier meine Frage:
Welche Lösungsmöglichkeiten würdet ihr empfehlen? Geht das überhaupt oder nur mit MDI-Childs oder gibt es etwas besseres, da muss ich ja alles Projekte nochmal angreifen, aus den Forms Childs machen, diese laufen dann nicht mehr für sich alleine usw. Vielleicht gibt es da etwas ganz einfaches??

Guten Rutsch
Martin

Nuclear-Ping 1. Jan 2008 16:14

Re: MDI oder Alternativen?
 
Schau dir mal Frames an.

meiner einer 1. Jan 2008 16:21

Re: MDI oder Alternativen?
 
An Frames hab ich auch schon gedacht, aber aus den bestehenden 50 Forms muss ich dann 50 neue Frames ummodeln, das wir heftig aufwändig. Oder gibt es einen Trick den ich nicht kenne um ein Form direkt als Frame einzufügen?

generic 1. Jan 2008 19:30

Re: MDI oder Alternativen?
 
schreib dir doch einen einfachen converter.
zwischen forms und frames gibt es nicht soviele unterschiede in der syntax in den pas und dfm dateien.

mimi 3. Jan 2008 11:10

Re: MDI oder Alternativen?
 
Du könntest auch alle diese Formulare evlt. in eine Text Datei Packen und zur Laufzeit erstellen ...
dazu gab es hier mal was.... Dann müsstest du nur noch die Parent Eigenschaft ändern geht auch bei einem From soviel wie ich weiß. Als Text Datei könnte eine Res genommen werden. Aber damit habe ich noch keine wirkliche Erfahrung ist nur als Idee gedacht.

So wie ich dich verstehe möchtest du alle 50 Formuale in einem Projekt vereinen... richtig ?
Eine MDI Anwendung würde natürlich auch gehen aber bei 50 Froms ? etwas zu unübersichtlich oder ?

Dann könntest du z.b. jedes From in einem PageControl anzeigen.
Oder du legst die ein Baum an wo du alles schön geordnet rein tust oder NoteBook ist aber eine uralte Komponente die es aber noch in Delphi gibt... Ich glaube das gleiche kann auch mit PageControl erreich werden.

Die Frage währe auch noch wie du dir die Oberfläche vorstellst davon hängt es ab was du nehmen solltest.
Ich würde diese 50 Froms in Gruppen zusammen fassen(Wenn das geht) und dann in einem Baum anzeigen z.b. in einem MainMenu oder so. und die Formualre einfach dynamisch erstellen. Weil du brauchst ja nicht alle 50 From gleichzeitig oder ?

whsd 3. Jan 2008 13:44

Re: MDI oder Alternativen?
 
Es gibt bei den LMDTools die Komponente LMDFormTabControl, damit können separate
Forms in Tab-Controls dargestellt werden.

meiner einer 4. Jan 2008 15:40

Re: MDI oder Alternativen?
 
Die Idee mit dem Converter gefällt mir nicht schlecht, für meine Anwendung wäre aber der Vorschlag von mimi glaub ich besser:
Zitat:

Ich würde diese 50 Froms in Gruppen zusammen fassen(Wenn das geht) und dann in einem Baum anzeigen z.b. in einem MainMenu oder so. und die Formualre einfach dynamisch erstellen. Weil du brauchst ja nicht alle 50 From gleichzeitig oder ?
Ich brauch tatsächlich nicht alle 50 Forms gleichzeitig, immernur kleine Gruppen von 2, 3 oder 4 Forms.
Das Ideal wäre:
Ich hab einen Baum und wähle z. B. die Gruppe A bestehend aus den Forms Form1 und Form2. Diese Forms sollen nun dynamisch erstellt werden und auf den Seiten TabSheet1 und TabSheet2 eines PageControlls erscheinen - das ist mein Ziel! Wenn nun später z. B. die Gruppe B gewählt wird, soll die Gruppe A komplett geschlossen werden, damit wieder Platz für die neuen Forms wird.

Aber wie erzeuge ich nun meine Form1 und Form2 dynamisch und bette sie gleichzeitig in meine TabSheets ein, ohne groß den Code der Forms ändern zu müssen, denn diese sollen auch noch in ihrer Einzelversion kompilierbar und lauffähig bleiben?

mimi 4. Jan 2008 16:39

Re: MDI oder Alternativen?
 
du kannst die Parent Eigenschaft deines Forms so stellen das es auf ein TabSheet geht:
From1.Parent:=TabSheet1

z.b.

Wie man ein Formular Dynamisch erzeugt weiß ich jetzt nicht. Da müsstest du hier im Forum mal suchen.
Sollte aber gehen.

Das Problem wird sein die 50 From in Gruppen anzulegen und diese Gruppen zu bennen oder reicht dir Gruppe A Gruppe B ? und soweiter....

Diese Strucktur könntest du auch aus einer Datei in die TreeView laden.

meiner einer 5. Jan 2008 19:52

Re: MDI oder Alternativen?
 
das funktioniert spitzenklasse, danke


Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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