Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi MDI oder was...? (https://www.delphipraxis.net/97245-mdi-oder.html)

timog 18. Aug 2007 09:29

Re: MDI oder was...?
 
Hallo Hepdepaddel,

falls Du Frames aus irgendeinem Grund nicht magst oder dir beim Panel-Ansatz die visuelle Repräsentation irgendwie "fehlt", kannst Du auch JvEmbeddedFormPanel und JvEmbeddedFormLink aus der JVCL nehmen. Ein JvEmbeddedFormPanel auf das Hauptform, je ein JvEmbeddedFormLink auf alle Unterformulare. Zur Laufzeit dann im Hauptformular der JvEmbeddedFormPanel.FormLink Eigenschaft die entsprechende JvEmbeddedFormLink-Komponente zuweisen:

Delphi-Quellcode:
JvEmbeddedFormPanel1.FormLink := Form2.JvEmbeddedFormLink1;
Anschließend muss je nach Aufbau von Form2 vielleicht noch das ein oder andere Repaint aufgerufen werden, da es sonst mit der Bildschirmdarstellung etwas hapert (Artefakte).

Viele Grüße

Timo

Hepdepaddel 30. Aug 2007 08:43

Re: MDI oder was...?
 
Hi,

nach längerer Zeit - ich habe mit den genannten Optionen etwas herumgespielt - eine Rückmeldung. Eigentlich wollte ich vermeiden, wieder eine Drittkomponente einzusetzen. Bisher habe ich die LMD-Tools benutzt, die verwende ich aber fast nur noch wegen der Form-Komponente, die wie ein Panel auf ein Form gesetzt werden kann und sehr leicht an anderes TForm-Objekt in sich darstellen kann. Ich hatte gehofft, das irgendwie auch anders darstellen zu können, separate Forms wären mir eben lieber...

Nun werde ich aber wohl auch das aktuelle Projekt mit den LMD-Tools anfangen, es ist nur ein Quick&Dirty-Prototyp, den ich bei Kundeninteresse wohl in ein/zwei Monaten sowieso mal auf eine saubere Grundlage stellen muss. Vielleicht sind dann Frames wirklich das Mittel der Wahl, wobei fehlende "OnCreate/OnShow" etc. das ganze irgendwie nicht sexy machen...

Danke & Viele Grüße

Hepdepaddel

hanspeter 30. Aug 2007 09:31

Re: MDI oder was...?
 
Ich kann die Nachteile von MDI immer noch nicht so richtig nachempfinden.
Worin bestehen denn nun diese?
Ich setze in einem großen Projekt MDI Formulare ein und habe keinerlei Probleme damit.
Im Gegenteil.
Für Menüs setze ich TMSADVToolbar ein.
Ein Handler im Hauptprogramm verwaltet mir die Formulare.
Hier öffne ich ein Formular und gebe als Parameter an, ob dies ein normales , ein modales oder ein
MDI Form ist.
Dem Aufrufprogramm teile ich mit, ob das MDI Formular neu geöffnet werden kann oder ob ein bereits vorhandenes
Formular wieder aktiviert werden soll.
Der Handler vermerkt die Position des Formulars und stellt diese beim erneuten Öffnen wieder her.
Wie soll ich anderst eine Funktion lösen, das beispielsweise zusätzlich zum Bearbeitungsformular noch eine
Kundenauswahl und Artikelauswahl geöffnet und wahlfrei angeordnet werden kann?

Gruß
Peter

Jakob Ullmann 30. Aug 2007 09:41

Re: MDI oder was...?
 
Ich verstehe das auch nicht. Und ich verstehe auch nicht, was in XP grauenhaft aussieht. Ich habe mir letztens ne MDI für Win95 runtergeladen. Das sah auf XP total gut aus (abgesehen von den Toolbar Icons, die sahen sehr alt aus).
Ich bleibe auf jeden Fall bei MDI.

uwewo 30. Aug 2007 09:43

Re: MDI oder was...?
 
Zitat:

Zitat von Hepdepaddel
Wie packst Du das "Unter-Form" in das Panel?

Ich denke diese Frage ist noch nicht gelöst deshalb

Delphi-Quellcode:
  Form2.Panel.Parent := HauptForm.Panel;
Grundvoraussetzung ist natürlich das Form2 schon existiert.

Gruss Uwe

Hepdepaddel 30. Aug 2007 10:40

Re: MDI oder was...?
 
Hm...

Delphi-Quellcode:
Form2.Panel.Parent := HauptForm.Panel;
Also auf dem Hauptform habe ich ein Panel... soweit OK. Ich hätte da eher sowas erwartet

Delphi-Quellcode:
Form2.Parent:=Hauptform.Panel;
Wenn ich Deinen Code lese, würde ich vermuten, dass irgendein Panel auf dem Form2 nun eben dem Form1 zugeordnet wird... was ich suchte, war sowas (Achtung: Block-Art)




Delphi-Quellcode:
+----------------------------------------------------+
| Hauptform                                         |
|                                                    |
|             +--------------------------------------+
|             |                                      | 
|             |                                      | 
|             |   FORM 2 (mit visuellen und nicht-   | 
|             |           visuellen Komponenten     | 
|             |                                      | 
|             |                                      | 
+-------------+--------------------------------------+
Dennoch Danke für Dein Posting - ich habe das Form2.Parent:=Form1.Panel einfach mal ausprobiert. Lustiger Effekt, man kann dann tatsächlich das neue Form2 im Panel sehen - sogar mit Titelleiste und allem drum und dran - auch Verschieben ist möglich. Mit BorderStyle "none" und Top/Left:=0 sowie einer Anpassung von Breite und Höhe an die Abmessungen des Panels im OnResize des Panels beginnt das ganze gute Formen anzunehmen! Danke also, das Posting hat mich auf den richtigen Weg gebracht!

Viele Grüße

Hepdepaddel


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:52 Uhr.
Seite 2 von 2     12   

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