Delphi, MDI vs Tabs für Multi-Dokument-Schnittstelle

7

Ich entwickle eine Anwendung für mehrere Dokumente. Derzeit verwendet es MDI, was für mich (als Entwickler) und für Benutzer, die ich glaube, recht praktisch ist. Es gibt jedoch ein "Gegen" - Ich habe keine Lösung gefunden, schnell zu laden viele untergeordnete Fenster (jedes Mal, wenn das Fenster erstellt und maximiert wird, um den Bereich der Eltern zu füllen, Es gibt eine 'Animation' der Größenänderung, die viel Zeit in Anspruch nimmt. Daher überlege ich, zur Tabbed-Schnittstelle zurückzukehren (was etwas mehr Arbeit erfordert, ich muss ein Formular in das Seitenblatt "einbetten", wie dort) Es gibt viele "Arten" von Formularen, einige zum Bearbeiten von Textdokumenten, andere für andere Objekte) ...

Also, was ist deine Meinung? Sollte ich MDI oder Tabbed Interface verwenden?

    
migajek 22.09.2009, 23:49
quelle

4 Antworten

9

MDI wurde in den Windows 3 Tagen (oder möglicherweise früher?) entwickelt und wird heutzutage nicht gut unterstützt. Wenn Sie mehrere Dokumente mit unterschiedlichen Formularen benötigen, empfehle ich die Verwendung einer Benutzeroberfläche mit Tabs. Verwenden Sie Rahmen anstelle von Formularen, und erstellen Sie die neuen Registerkarten und platzieren Sie einen Rahmen darauf ausgerichtet alClient.

    
Mason Wheeler 23.09.2009, 00:07
quelle
11

Um die Größenanimierungsanimation (und damit die Verzögerung) neuer untergeordneter MDI-Fenster zu vermeiden, senden Sie vor dem Erstellen der untergeordneten Fenster eine WM_SETREDRAW-Nachricht an die ClientHandle-Eigenschaft des übergeordneten TForms, und senden Sie sie erneut, wenn Sie fertig sind. p> %Vor%     

Remy Lebeau 23.09.2009 00:16
quelle
5

Es gibt sicherlich mehr negative Punkte als die, die Sie anführen. Diskussionen dazu finden Sie in der Wikipedia und sogar in den Windows-Schnittstellenrichtlinien. MDI wird seit Jahren nicht mehr weiterentwickelt. Microsoft selbst verwendet MDI nicht mehr in seiner "Standard" -Form für irgendwelche seiner großen Anwendungen, sondern bietet oft nur eine MDI-Emulation zusammen mit anderen UI-Stilen.

Wenn Ihr Programm für Benutzer mit mehreren Bildschirmen gedacht ist, haben sowohl MDI als auch eine tab-basierte Benutzeroberfläche das Problem, die Dokumentfenster auf das Innere des Elternfensters zu beschränken.

Bei einem geeigneten Anwendungsdesign müssen Sie sich nicht wirklich zwischen MDI und tab-basierter Benutzeroberfläche entscheiden. Lassen Sie Ihre Benutzer entscheiden, mit welcher Benutzeroberfläche sie sich am wohlsten fühlen und welche am besten zu ihrem Arbeitsstil passt. Ermöglichen Sie mehrere unabhängige Top-Level-Dokumentfenster (entweder in einer Anwendungsinstanz oder in mehreren). Das kann so einfach sein wie das Erstellen von Frame-Klassen für Ihre Dokumente und das Festlegen zur Laufzeit, ob Sie sie in ein Tab-Steuerelement, in ein untergeordnetes MDI-Fenster oder in ein Top-Level-Fenster einbetten möchten.

    
mghie 23.09.2009 04:17
quelle
3

Frage: Ist es wichtig, dass Benutzer mehrere eingebettete Formulare oder Frames gleichzeitig sehen können? Wenn nicht, gehen Sie sicher nach Tabs.

Tabs erleichtern das Navigieren und sehen, was Sie zur Verfügung haben. Aber mit Standard-PageControl können Sie immer nur einen Tab sehen - es gibt kein "Tiling" oder "Cascading". Probleme beginnen beispielsweise dann, wenn Benutzer Dinge von einem Tab auf einen anderen ziehen müssen. Es kann natürlich gemacht werden, ist aber nicht so praktisch - weil Benutzer nicht sehen, wohin sie etwas ziehen.

Um diese Einschränkung zu überwinden, müssten Sie sich eine Docking-Benutzeroberfläche ansehen, die zwar die Komplexität erhöht, Ihnen aber auch Registerkarten zur Verfügung stellt und sie kacheln kann.

    
Marek Jedliński 23.09.2009 01:03
quelle

Tags und Links