Xojo Conferences
MBSSep2018MunichDE
XDCMay2019MiamiUSA

MDI simulieren (Real Studio network user group Deutschland Mailinglist archive)

Back to the thread list
Previous thread: AW: MDI simulieren
Next thread: IO-Warrior


Probleme mit String Bearbeitung   -   Markus Schnell
  MDI simulieren   -   Christian Hahn
   Re: MDI simulieren   -   Christiaan Verbree
    Re: AW: MDI simulieren   -   Stefan Mettenbrink

MDI simulieren
Date: 08.08.07 09:00 (Wed, 8 Aug 2007 10:00:12 +0200)
From: Christian Hahn
Hallo,
MDI-Fenster gibt es offenbar nur unter Windows. Wie ließe sich
entsprechendes für die anderen Betriebssysteme realisieren?
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).
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.
Dank für gute Ratschläge, Christian Hahn.

Re: MDI simulieren
Date: 08.08.07 11:36 (Wed, 8 Aug 2007 12:36:27 +0200)
From: Christiaan Verbree
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