Thema: Delphi MDI oder SDI?

Einzelnen Beitrag anzeigen

Benutzerbild von Ralf Kaiser
Ralf Kaiser

Registriert seit: 21. Mär 2005
Ort: Wuppertal
932 Beiträge
 
Delphi 10.3 Rio
 
#3

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:23
Halli Hallo,

Zitat von davar:
Nun kam ich auf die Idee des MDI, aber alles, was ich bisher als MDI gesehen habe, waren Textverarbeitung o.ä. Sachen, also alle Fenster mit gleichem Inhalt.
MDI ist (wie so viele "Modeerscheinungen" bei Software) heutztage eigentlich "nicht mehr üblich".

Zitat von davar:
...immer da ist und immer der untere Teil des Formulars sich verändert, wenn ich eine bestimmte Funktion aufrufe, quasi wie Frames bei HTML.
Delphi bietet dazu (Stichwort "quasi wie Frames bei HTML") eine sehr gute Möglichkeit an, die sich auch noch genau so nennt: ein Frame!

Mit Frames (besser: TFrame-Komponenten) kann man hervorragend Benutzerschnittstellen im Stile von z.B. Outlook bauen bei denen irgendwo im Fenster Kontrollelemente (Toolbars, Navigationsleisten) fest vorhanden sind und in einem zentralen Bereich jeweils der aktuelle Inhalt eingeblendet wird.

Dazu erstellt man die Frames ganz normal mit Delphi und füllt sie mit Leben, sprich Code. Dann fügt man die Frames aber nicht visuell in das Hauptformular ein, sondern erzeugt sie dynamisch und setzt sie per Code beispielsweise in ein zentral im Haupformular vorhandenes Panle ein.

Also in etwa so:

Delphi-Quellcode:
  
  MeinBearbeitungsFrame := TMeinBearbeitungsFrame.Create(Self);
  MeinBearbeitungsFrame.Align := alClient
  MeinBearbeitungsFrame.Parent := ZentralesPanel;
  MeinBearbeitungsFrame.Visible := true;
  MeinBearbeitungsFrame.InitialisiereDasFrame;
Für das Schliessen der Frames kann man in der Frame-Klasse Events implementieren die das Haptformular davon unterichten, daß das Frame doch jetzt bitte entfernt werden soll. Ebenso kann die Frameklasse Methoden enthalten mit denen das Hauptformular abfragen kann ob noch ungespeicherte Daten da sind (so etwas wie "function CanClose: boolean").

Ich hoffe, diese Idee hilt ein wenig weiter,
Ralf
Ralf Kaiser
  Mit Zitat antworten Zitat