Delphi-PRAXiS
Seite 1 von 2  1 2      

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)

Hepdepaddel 7. Aug 2007 15:25


MDI oder was...?
 
Hi,

welche Vorgehensweise wählt ihr, wenn ihr eine Anwendung in einem Hauptfenster aber mit mehreren Ansichten umsetzen wollt?

Gemeint ist eine Funktionalität in der Art von Outlook - wenn ich dort in der Navigationsleiste den Kalender wähle, erscheint rechts davon ein Monatskalender, wähle ich "Kontakte" erscheint eine Liste der Kontakte etc. Man könnte einzelne Forms als Dialoge nehmen - aber ich hätte die Anzeige gerne immer im "Hauptfenster" - mal als Tabelle, mal als Grafik, mal als Eingabeformular (Settings)... je nach Ansicht.

Ich habe beispielsweise einen Button für "Kundenkontakte", "Umsatzverlauf" (Grafik), "Stammdaten" etc. Neben meiner "Outlook-Bar" müssen also völlig verschiedene Ansichten dargestellt werden.

Lösungen fallen mir da schon für ein - aber wie geht Ihr da vor? PageControl mit Umschalter? Eigene Formulare, die im Client-Bereich des Hauptfensters dargestellt werden? Eine MDI-Anwendung? Es würde mich interessieren, wie ihr die Vor- und Nachteile dieser Varianten seht.

Viele Grüße

Hepdepaddel

Graffi 17. Aug 2007 00:29

Re: MDI oder was...?
 
Zitat:

Zitat von Hepdepaddel
Eine MDI-Anwendung?

MDI ist wohl nicht mehr zu empfehlen, da selbst MS davon Abstand genommen hat.

Meine alten MDI-Anwendungen sehen z.B. unter XP/Vista einfach nur grauenvoll aus.

semo 17. Aug 2007 07:30

Re: MDI oder was...?
 
@graffi: was ja auch am entwickler liegen kann, oder?

Phoenix 17. Aug 2007 08:09

Re: MDI oder was...?
 
Ich arbeite gerade mit einer solchen Anwendung.
Im Prinzip werden dazu ganz normale Forms hergenommen, die als Parent ein Panel bekommen, welches den restlichen Clientbereich rechts vom Hauptform ausfüllt.

jim_raynor 17. Aug 2007 08:11

Re: MDI oder was...?
 
Alternativ kann man natürlich auch Frames (TFrame) nutzen und diese dann sichtbar/bzw. Unsichtbar schalten. Zumindestens habe ich es so in einer meiner Anwendung gelöst und funktioniert ganz gut.

Sko 17. Aug 2007 08:26

Re: MDI oder was...?
 
Oder mit PageControl und ausgeblendeten Tabs arbeiten, geht auch ganz gut.

hanspeter 17. Aug 2007 08:48

Re: MDI oder was...?
 
Zitat:

Zitat von Hepdepaddel
Eine MDI-Anwendung?

MDI ist wohl nicht mehr zu empfehlen, da selbst MS davon Abstand genommen hat.

Meine alten MDI-Anwendungen sehen z.B. unter XP/Vista einfach nur grauenvoll aus.[/quote]

Um mal eine Lanze für MDI zu brechen.
Es gibt einige Sachen, welche nur mit MDI sinnvoll zu lösen sind. Immer dann, wenn z.B. mehr als ein Fenster gleichzeitig
benötigt wird.
Beispiel Auftragserfassung. Ich öffne ein weiteres Fenster mit den Kundendaten und ein weiteres Fenster mit den Artikeldaten.
Mitten in der Arbeit kommt ein Anruf und ich öffne mal eben schnell einen anderen Auftrag und schließe diesen dann wieder.
Alle Möglichkeiten, die MDI hier bietet, wie ein Container für alle Fenster, das manuelle Anordnen der Fenster, das Wechseln
des Focus zwischen diesen Fenstern, das Anordnen in einer Menüleiste, muss man mühevoll nachbauen.
Wenn MDI ein bischen aufgefrischt und überflüssige Zöpfe, wie z.B. das Mergen der Menüleiste abgeschnitten würden,
ist das durchaus eine brauchbare Methode.


Gruß
Peter

Graffi 17. Aug 2007 22:04

Re: MDI oder was...?
 
Zitat:

Zitat von computer-glossar.de
@graffi: was ja auch am entwickler liegen kann, oder?

Sorry, aber ich konnte (auch) damals noch nicht in die Zukunft blicken.

Ich persönlich kann MDI absolut nicht mehr empfehlen!

Hepdepaddel 18. Aug 2007 08:58

Re: MDI oder was...?
 
Zitat:

Zitat von Phoenix
Ich arbeite gerade mit einer solchen Anwendung.
Im Prinzip werden dazu ganz normale Forms hergenommen, die als Parent ein Panel bekommen, welches den restlichen Clientbereich rechts vom Hauptform ausfüllt.

Von MDI hatte ich inzwischen auch Abstand genommen, die Lösung mit dem PageControl wäre eine Möglichkeit. Sie ist aber vermutlich deutlich ressourcenhungriger und man hat die ganzen Ereignisbehandlungsroutinen im wesentlichen in einer einzigen Unit.

Ich hatte auch schon überlegt, einzelne Forms zu erstellen, die quasi nur den Arbeitsbereich neben den Navigationselementen ausfüllen. Das schöne wäre, dass man OnCreate etc. in gewohnter Manier nutzen kann. Wenn ich das richtig verstehe, nutzt du zwei Forms: Hauptform mit Panel und dann in dem Panel ein Form? Wie packst Du das "Unter-Form" in das Panel?

Gruß

Hepdepaddel

Muetze1 18. Aug 2007 09:09

Re: MDI oder was...?
 
Nimm Frames, die sind genau dafür gedacht. Du hast eine Unit mit dem Oberfächenteil und kannst alles entsprechend implementieren. Bei deinem View-Wechsel instanziierst du einfach die Frames nach deinen Wünschen (bzw. gibst die alten frei) und positionierst diese dann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:51 Uhr.
Seite 1 von 2  1 2      

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