Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - MDI oder SDI?
jenbru - Do 04.11.04 11:51
Titel: MDI oder SDI?
Hallo,
folgendes Problem:
ich arbeite derzeit an einem Software-Projekt, mit dem es möglich ist verschiedene Berechnungen aus dem Bereich der Lichttechnik durchzuführen und diese grafisch darzustellen.
Derzeit arbeite ich am Entwurf eines GUI-Prototyps. Um verschiedene Berechnungen zu vergleichen, soll es möglich sein mehrere unabhängige Darstellungen anzuzeigen. Dabei stellt sich die Frage nach der grundsätzlichen Vorgehensweise. Sollte man dies in einer einfachen MDI-Anwendung (Ein Hauptfenster, mehrere gleichartige Unterfenster) oder in einer SDI-Anwendung realisieren, bei der "scheinbar" mehrere Instanzen der Anwendung parallel geöffnet sind (Beispiel: MS Office)?
Leider habe ich keine Ahnung, wie man letzteres Beispiel, also eine SDI-Anwendung im Stil von MS Office implementieren könnte. Hat da jemand schon Erfahrungen mit gemacht? Setzt MS zur Realisierung solcher Anwendungen besondere Technologien ein?
Bis denne,
Jenne
patrick - Do 04.11.04 13:22
wie wäre es denn wenn du eine art "tab-browsing" machst, so wie sie in mozilla, opera oder in diversen editorprogrammen realisiert ist :wink:
möge die macht mir dir sein 8)
jenbru - Do 04.11.04 13:36
Hallo,
danke zunächst für die schnelle Antwort. Das mit dem "Tab-Browsing" hatte ich mir auch schon überlegt. Allerdings habe ich ja dann den Fokus auch wieder nur auf einem Fenster, was so nicht wirklich mein Problem löst, dass ich mehrere Darstellungen zwecks Vergleich gleichzeitig anzeigen muß.
patrick - Do 04.11.04 19:23
in diesem fall ist eine MDI die richtige wahl.
jenbru - Do 04.11.04 19:34
Hi,
Das waere sicher die am leichtesten zu implementierende Loesung. Allerdings geht der Trend
ja in Richtung SDI (man streitet sich ja offentsichtlich schon lange um das Thema MDI/SDI). Das hat auch der Kunde mitbekommen und wuenscht eben eine SDI-Loesung, die sich aehnlich den MS-Produkten verhaelt.
Bis denne,
Jenne
patrick - Do 04.11.04 20:24
aber wie willst du soetwas mit einem single data interface (SDI) realisieren wenn du mehrere daten gleichzeitig anzeigen willst?
word,excel usw sind übrigends auch MDI anwendungen, nur mit dem unterschied das die clients(dokumente)in der regel maximiert dargestellt sind.
aber mir kommt da grad noch ne idee. wie wäre es denn wenn du die daten "aufklappbar" machst:
ich hab da mal was zusammengeschustert(nur um das prinzip er verdeutlichen)
patrick - Do 04.11.04 20:26
hab in sachen word und MDI/SDI grad was dazugelernt:
| Zitat: |
Bis und mit Word 97 war MS Word ausschliesslich mit einem sogenannten MDI (Multi Document Interface) ausgestattet. Das Anwendungsfenster ist dabei immer genau einmal in der Taskleiste von MS Windows präsent. Das Anwendungsfenster wiederum kann dann aber 0 bis n Dokumente verwalten.
Mit Word2000 tritt das SDI (Single Document Interface) auf den Plan. Dabei mag der Eindruck aufkommen, dass MS Word gleich mehrmals aufgestartet wird, was wohl auch im Bezug auf den Speicherbedarf nicht sehr günstig wäre. Der Schein trügt hier aber. Faktisch startet MS Word nur ein einziges Mal. Jedes Word-Dokument hinterlässt allerdings (bewusst) einen Eintrag in der Taskleiste, was einerseits den Wechsel zwischen den verschiedenen Dokumenten erleichtert, allerdings auch zu einer Überflutung der Taskleiste führen kann. Letzteres ist allerdings nur arbeitstechnisch gesehen, ein Problem. |
jenbru - Do 04.11.04 20:40
Mach Dir nix draus, bis heute morgen wusste ich das mit dem Word auch nocht nicht ;)
Aber genau in der Art wollte ich das eigentlich implementieren!
Die Idee mit den aufklappbaren Daten ist allerdings auch schick. Dann koennte ich doch mit "Tabs" arbeiten und die Daten in einem eigenen "Tab" vergleichen. Danke fuer den geistigen Anstoss :D
Bis denne,
Jenne
patrick - Fr 05.11.04 10:16
gern geschehen,
das macht dann 6% Gewinnbeteiligung an dem fertigen Produkt, sowie 40? für die angebrochene Arbeitsstunde :mrgreen:
jenbru - Fr 05.11.04 12:04
Hi,
| patrick hat folgendes geschrieben: |
gern geschehen,
das macht dann 6% Gewinnbeteiligung an dem fertigen Produkt, sowie 40? für die angebrochene Arbeitsstunde :mrgreen: |
Ich werde das umgehend an meinen Chef weiterleiten! ;)
Schoenes Wochenende,
Jenne
jenbru - Mo 08.11.04 14:19
Hallo,
Wen es interessiert, dank der Leutchen aus der deutschen Delphi-Newsgroup habe ich eine Loesung fuer mein Problem gefunden :D
Ich gebe meiner Anwendung einfach ein leeres, nicht sichtbares Hauptfenster
Delphi-Quelltext
1:
| Application.ShowMainForm:=False; |
Dann erzeuge ich bei Bedarf beliebige Instanzen einer neuen Form ohne "OWNER"
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure NeuesFenster; var NeuesFenster:TBeliebigesFenster; begin NeuesFenster:=TBeliebigesFenster.Create(NIL); NeuesFenster.Show; end; |
Fuer meine neuen Fenster muss ich jetzt nur noch Taskbar-Eintraege erzeugen. Das geht mit Ueberschreibung der CreateParams(...) Prozedur
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19:
| type TBeliebigesFenster = class(TCustomForm) protected procedure CreateParams(var Params: TCreateParams); override; public end;
implementation
procedure TBeliebigesFenster.CreateParams(var Params: TCreateParams); begin inherited CreateParams(Params); Params.WndParent:=0; end;
|
Bis denne,
Jenne
Moderiert von
Tino: Code- durch Delphi-Tags ersetzt.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!