Hallo Christian

Am 08.08.2007 um 10:00 schrieb Christian Hahn:

MDI-Fenster gibt es offenbar nur unter Windows. Wie ließe sich
entsprechendes für die anderen Betriebssysteme realisieren?

Ich denke es gäbe mehrere Ansätze um das zu lösen aber wohl keiner wird wirklich bequem sein. Ich würde persönlich mir zuerst nochmals überlegen ob es wirklick MDI sein muss. Denn das ist ja z.B. unter Mac alles andere als üblich.

In meinem Fall böte sich MDI wirklich an: Mein Programm hat mehrere Fenster mit Tabellen, die möglichst gleichzeitig zu sehen sein sollen, die einzelnen Fenster sollen jedoch auch beliebig vergrößert werden können (und dann über
den anderen Fenstern liegen).

Naja eine wohl relativ einfache Variante wäre alles in ein Fenster zu packen und dann einen Steg zwischen die Tabellen zu machen, damit man die Breite der einzelnen Tabellen verschieben kann. Wie z.B. bei Mail wo man die Breite der linken Spalte breiter machen kann. Damit würde aber das überlagern nicht gehen.

Weitere Variante wäre mit einem Canvas eine eigene Mdi Oberfläche zu Programmieren, da müsstest du aber dann schauen wie du die Steuerelemente platzierst (denke diese Lösung ginge am besten, wenn der Inhalt der Fenster auch alles selber erstellt wird). Was bei dieser Lösung ein Problem sein wird ist wohl die Geschwindigkeit und es ist relativ aufwändig. Dafür würde das dann ohne weiteres auf allen System laufen und auch gleich aussehen und sich gleich verhalten.

Z.Zt. habe ich die einzelnen Fenster als gewöhnliche Document-Fenster
ausgelegt. Aber wo könnte man das für alle Fenster gültige Menü
unterbringen.

Ehm das verstehe ich nicht ganz, unter Mac ist doch das Menu eh in der Menubar, für Windows und Linux, könntest du noch ein weiteres Fenster machen, das du Horizontal über allen anderen Positioniert, so als eine Art Fake Menubar. Im Office für Mac wurde die Toolbar da auch so ähnlich gelöst.

Um dann noch einen schönen Hintergrund alla Mdi zu bekommen könntest du noch ein weiteres Fenster nehmen das dann einfach so gross ist, das alle anderen darin liegen. Müsstest nur einen Code finden, der es verunmöglicht das deine Dokumentfenster hinter das grosse geraten. Keine Ahnung ob man das irgendwie hinbekommt (wird sicher ein gebastel). Dann fehlen dann noch die Scroll-Implementierung für das Hintergrundfenster und das richtige Verhalten für Minimierung und Grössenveränderung.

Eine weitere Möglichkeit wäre vielleicht das neue Steuerelement vom RB2007 (keine Ahnung ob das die aktuelle Version ist). Dort gibt es doch so ein Objekt, das man wie ein Fenster desingen kann. Und diese kann man dann in andere Fenster einfügen. Vielleicht lässt sich mit dem was machen.


Ich persönlich würde wohl die Canvas-Variante nehmen oder die letzte (wenn ich die aktuelle RB Version hätte). Aber natürlich nur wenn es wirklich nicht anders geht.

gruss Christiaan

Antwort per Email an