AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

MDI oder SDI?

Ein Thema von davar · begonnen am 2. Feb 2006 · letzter Beitrag vom 2. Feb 2006
Antwort Antwort
Seite 1 von 2  1 2      
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#1

MDI oder SDI?

  Alt 2. Feb 2006, 08:40
Hallo Leute,

ich wage es schon fast gar nicht zu fragen, finde aber doch von selbst keine Antwort.

Also ich programmiere gerade eine Art Verwaltungssoftware mit mehreren Formularen (derzeit ca. 15, Tendenz steigend). Derzeit benutze ich einzelne, voneinander unabhängige Formulare, was jedoch meines Erachtens nicht so gut ist. Ich möchte ein Hauptfenster mit einem Menü, das immer da ist und immer der untere Teil des Formulars sich verändert, wenn ich eine bestimmte Funktion aufrufe, quasi wie Frames bei HTML.

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.

Kann man mein Projekt als MDI einsetzen oder ist das eher ungewöhnlich/nicht machbar?

MfG

davar
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#2

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:16
Ist bei solchen Projekten eigentlich das übliche Verfahren.
Es gibt ein paar Kleinigkeiten zu beachten.
So ist sollte das Fenster mit dem style fsmdiform keine Komponenten enthalten
bzw. müssen diese auf visible = false gesetzt werden, da sie sonst immer sichtbar sind.
MS hat ja MDI aus konzeptionellen Gründen sterben lassen wollen, aber jetzt unterstützt man es
wohl wieder.

Weiterer Vorteil:
Alle offenen MDI Child in einer Liste der MDI Form und dort handelbar.

Nachteil:
MDI Childs sind nicht in eine DLL auslagerbar.

Alternativ wäre ein Design so ähnlich wie Delphi.
Eine Menü/Buttonleiste und darunter andockbare Fenster, die für jedes geöffnete Fenster in einer
Buttonleiste einen Anker erhalten.

Gruß Peter
  Mit Zitat antworten Zitat
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
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#4

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:37
Zitat von hanspeter:
Nachteil:
MDI Childs sind nicht in eine DLL auslagerbar.
Sie lassen sich aber wunderbar in BPLs auslagern.

Gruß Igotcha
  Mit Zitat antworten Zitat
davar

Registriert seit: 4. Feb 2005
311 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:39
Besser hätte ich mir die Antworten schon gar nicht mehr vorstellen können, einmal ja, einmal nein

MDI sagt mir ja schon was, und da hätte ich auch keine Probleme, Tutorials oder andere Quellen zu bekommen. Aber Frames sind für mich was ganz Neues. Gibt es das denn auch schon bei meinem alten Delphi 3.0 Prof?

Lohnt sich für mich die Mühe, mich mit Frames auseinanderzusetzen? Das Programm ist schon ziemlich weit fortgeschritten, und eine Umsetzung in MDI wäre nicht ganz so schwer, aber wie sieht das bei Frames aus?
  Mit Zitat antworten Zitat
XDev

Registriert seit: 28. Jan 2006
5 Beiträge
 
Delphi 2006 Architect
 
#6

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:47
Frames gibt es erst ab D5.

Gruß,
Werner
  Mit Zitat antworten Zitat
Igotcha

Registriert seit: 22. Dez 2003
544 Beiträge
 
Delphi 2006 Professional
 
#7

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:50
Zitat von davar:
Besser hätte ich mir die Antworten schon gar nicht mehr vorstellen können, einmal ja, einmal nein

MDI sagt mir ja schon was, und da hätte ich auch keine Probleme, Tutorials oder andere Quellen zu bekommen. Aber Frames sind für mich was ganz Neues. Gibt es das denn auch schon bei meinem alten Delphi 3.0 Prof?

Lohnt sich für mich die Mühe, mich mit Frames auseinanderzusetzen? Das Programm ist schon ziemlich weit fortgeschritten, und eine Umsetzung in MDI wäre nicht ganz so schwer, aber wie sieht das bei Frames aus?
Ich für mich kann nur sagen, MDI und BPLs rulen

Du schreibst Dir einmal eine Hauptanwendung, quasi einen Container mit bestimmten Grundfunktionen (was bei weitem der schwierigste Teil war, um diese Architektur umzusetzen) und anschließend kannst Du per BPL beliebig viele Formulare, bei mir "Lösungsmodule" (da mehrere Formulare und themenbezogen) anzeigen lassen.

Vorteil bei der Art, wie ich es umgesetzt habe: Hauptprogramm und Module laufen innerhalb eines Application-Objekts, verhalten sich also wie eine Anwendung aus einem Guß und lässt Kommunikation von Hauptanwendung und BPLs in beide Richtungen zu. Z.B. wird die Datenbankverbindung über mein Hauptprogramm hergestellt und im onCreate meiner Module mache ich dann ein Zquery1.Connection = xForm.xBASConnection (xForm = Form der Hauptanwendung), fertig.

Gruß Igotcha
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#8

Re: MDI oder SDI?

  Alt 2. Feb 2006, 09:55
Zitat von Alfi001:
MDI ist (wie so viele "Modeerscheinungen" bei Software) heutztage eigentlich "nicht mehr üblich".
Das wäre mir aber neu. Fast alle Anwendungen die wir entwickeln bzw. die wir von Fremdherstellern einsetzen machen MDI! Das ist vor allem dann wichtig, wenn man mehrere Sachen parallel bearbeitet bzw. prüft oder überwacht. Da sind Frames dann doch nicht mehr so Klasse.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#9

Re: MDI oder SDI?

  Alt 2. Feb 2006, 10:18
Zitat von Alfi001:
MDI ist (wie so viele "Modeerscheinungen" bei Software) heutztage eigentlich "nicht mehr üblich".
Ja wie z.B. realisiere ich dann die nachfolgende Aufgabe ?

Ich bin in der Auftragsbearbeitung und schlage schnell einen Artikel nach?
Dann will ich an gleicher Stelle schnell an den Kundendaten etwas ändern u.s.w.

Oder ein anderes Beispiel ich bin gerade dabei Aufträge vom Papier zu erfassen.
Nach dem ein Auftrag halb erfasst ist, klingelt das Telefon und ich möchte schnell unterbrechen und einen
anderen Auftrag bearbeiten.

Oder konkret in meinem Projekt - ein Programm was im Sport eingesetzt wird.
Ich erfasse parallel die Daten der vorhergehenden und der gerade laufenden Prüfung.

Also MDI hat schon noch seine Berechtigung in der Praxis.

Gruß Peter
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#10

Re: MDI oder SDI?

  Alt 2. Feb 2006, 10:20
[quote="IgotchaIch für mich kann nur sagen, MDI und BPLs rulen
[/quote]

Ja solange man nicht mit Laufzeit - BPL arbeitet. Dann ergänzt man die DLL Hölle
mit der BPL Hölle.
Ohne automatische Internetupdate und einen Updatemanager hat man schlechte Karten.
Gruß Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 Uhr.
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