AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

MDI mit Delphi 10 Seattle

Ein Thema von kdf · begonnen am 1. Apr 2019 · letzter Beitrag vom 13. Apr 2019
Antwort Antwort
Seite 1 von 3  1 23   
kdf

Registriert seit: 3. Jul 2011
45 Beiträge
 
Delphi 10 Seattle Professional
 
#1

MDI mit Delphi 10 Seattle

  Alt 1. Apr 2019, 16:22
Delphi-Version: 5
Hallo,
ganz kurz zu MDI. Mit Delphi 6 habe ich ein paar Anwendungen mit dynamischen MDI Formularen gebaut. Das funktionierte eigentlich ganz gut.

Ich habe da etwas vor, das auf einem normalen PC und auf einem Tablet mit Windows 10 Prof. laufen soll. Wichtig ist dabei wohl eine vernünftige Bedienung mit touch zu haben. Das Handling der Fenster innerhalb einer MDI-Application erscheint mir recht komfortabel. Meine Anwendung ist ein Programm mit vielen Tabellen. Die Frage ist jetzt, gibt es Einschränkungen bei MDI gegenüber Einzelformularen? Sind da bei MDI noch nennenswerte Bugs drin?

Delphi ist jetzt D10 Seattle mit IBO.

Gruß
K.-D.
Delphi 6 Prof., Delphi 10 Seattle Prof., IBO 4, IBO 5, Firebird 2.5, Windows 10 Prof.
  Mit Zitat antworten Zitat
peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
184 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: MDI mit Delphi 10 Seattle

  Alt 2. Apr 2019, 11:24
MDI funktioniert schon noch, allerdings ist dieses Framework bei Microsoft schon seit mehr als 10 Jahren auf der Abschussliste und wird in Windows 10 ein Bißchen stiefmütterlich behandelt. Das neue "In" Layout ist ein Fenster mit Tabs für die Unterfenster, ein Bißchen wie MDI mit maximierten MDI children, nur halt zusätzlich mit Tabs für die Navigation.
Die meisten Benutzer kennen das von ihrem Browser, das UI ist ihnen daher vertraut. MDI apps gibts dagegen kaum noch, bei Windows selbst verwendet es keines der mitgelieferten STandardprogramme mehr, nicht mal Wordpad.

Ein tabbed layout ist mit Delphi ziemlich einfach zu realisieren. TTabcontrol oder TPagecontrol, alClient im main form, frames für die "Seiten", fertig
Peter Below
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
241 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: MDI mit Delphi 10 Seattle

  Alt 2. Apr 2019, 13:50
Bei dem tabbed Layout ist man nicht unbedingt auf Frames angewiesen, sondern kann zur Laufzeit auch die vorhandenen Fenster in die Tabs einhängen.

So ähnlich machen wir das, haben uns allerdings ein Control von TPagecontrol (inzwischen wg. Design TRzPagecontrol) abgeleitet, das bei Programmstart die anzuzeigenden TForms aus einer Konfigurationsdatei liest, Tabsheets erstellt, TXYZForms created und ins Tabsheet einhängt (Owner, Parent).
  Mit Zitat antworten Zitat
kdf

Registriert seit: 3. Jul 2011
45 Beiträge
 
Delphi 10 Seattle Professional
 
#4

AW: MDI mit Delphi 10 Seattle

  Alt 2. Apr 2019, 16:24
mit PageControl habe ich mal etwas in Delphi 6 gebaut. Das funktionierte ganz gut. Ich sehe jetzt den Vorteil gegenüber MDI nicht so ganz. Habe das derzeit wieder verworfen, da diese Unit mit den vielen Tab's so riesig und etwas unübersichtlich war. Bei MDI hat man halt eine Unit je Formular. Aber helft mir doch mal auf die Sprünge, wo sind die Vorteile gegenüber MDI?

K.-D.
Delphi 6 Prof., Delphi 10 Seattle Prof., IBO 4, IBO 5, Firebird 2.5, Windows 10 Prof.
  Mit Zitat antworten Zitat
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
241 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#5

AW: MDI mit Delphi 10 Seattle

  Alt 2. Apr 2019, 17:34
ich bin nur auf den Vorschlag von peterbelow eingegangen. Peter hatte Frames vorgschlagen, wir machen das halt mit stinknormalen TForms.

Aber beide Vorschläge haben für die ganzen (bisher MDI) Fenster einzelne Units (einmal TFrame, einmal TForm), die genau wie MDI-Formulare unabhängig voneinander entwickelt werden können, nicht eine Mega-Unit, in 50 Tabsheets mit Tonnen von Controls beisammen sitzen.

Tabsheet hat, zumindest, wenn es nicht zu viele Tabs sind, den Vorteil, mit einem Klick oder Touch von einem Fenster zum anderen springen zu können, und, wie erwähnt, sind ja viele oder die meisten User-Interfaces inzwischen mit Tabsheets gebaut (Browser, Delphi selber, Visual Studio...).

Bei den neueren Delphi-Controls gibt es auch so ein Seitenmenü, das man ein- und ausklappen kann, mit dem man dann weitere Kategorien verwalten kann, auch mit so nem Hamburger-Menüknopf. Weiss grad nur nicht, wie das Ding heisst, irgendwo in den Samples gibt es ein Beispiel. Da könntest du dann auch im Mainform ein Panel reinsetzen (alClient) und dann die einzelnen Fenster/Frames bei Bedarf einhängen.
  Mit Zitat antworten Zitat
kdf

Registriert seit: 3. Jul 2011
45 Beiträge
 
Delphi 10 Seattle Professional
 
#6

AW: MDI mit Delphi 10 Seattle

  Alt 2. Apr 2019, 18:38
Erstmal danke für die Info.
Ich werde wohl mal etwas mit MDI und etwas mit PageControl bauen. Eins von beiden werde ich dann später wieder verwerfen.

K.-D.
Delphi 6 Prof., Delphi 10 Seattle Prof., IBO 4, IBO 5, Firebird 2.5, Windows 10 Prof.
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
94 Beiträge
 
Delphi 10 Seattle Professional
 
#7

AW: MDI mit Delphi 10 Seattle

  Alt 3. Apr 2019, 07:03
Eine unwichtige, persoenliche, subjektive Meinung:

Ich finde insbesondere bei Touch-Bedienung aber auch generell MDI (im normalen Modus, wie man es so typisch erwartet) sehr frimelig.
Jedes Unterfenster einzeln minimieren oder "wiederherstellen" zu koennen, um dann mit zig kleinstfenstern in der Anwendung rumzujonglieren, wird spaetestens bei Touch zur Qual.
Das ganze Unterfenster-ge-resize braucht doch kein Mensch. Simples Menu (Tabs o.ae.) und jeden Einzelinhalt einfach erzwungen "Vollbild" darzustellen ist doch viel uebersichtlicher und Praxis-gerechter. Das ist wahrscheinlich auch der Grund, warum es von der Bildflaeche verschwindet.

Bei extrem umfangreichen Anwendungen wie Photoshop oder Blender mag das vielleicht angebracht sein, jede Datei als eigenes minimier- oder wiederherstellbares Fenster zu verwalten, aber ich glaube auch dort wird kaum ein Benutzer das wirklich nutzen und mehrere Dateien nebeneinander gleichzeitig bearbeiten. Ich arbeite jetzt seit ca. 20 Jahren fast jeden Tag mit Photoshop und die Situation stellt sich einfach nicht. Wenn man mehrere Dateien gleich abhandeln muss, laeuft es meistens eher auf eine Stapelverarbeitung raus. Wenn man eine Vorlage braucht, zieht man sie nicht als 2. Fenster/Datei daneben, sondern als Ebene unter die schon offene.
Ich wuerde an Deiner Stelle nicht auf ein totes Pferd setzen...

Geändert von hzzm ( 3. Apr 2019 um 07:14 Uhr)
  Mit Zitat antworten Zitat
kdf

Registriert seit: 3. Jul 2011
45 Beiträge
 
Delphi 10 Seattle Professional
 
#8

AW: MDI mit Delphi 10 Seattle

  Alt 3. Apr 2019, 09:51
Ich bin damit jetzt einfach mal angefangen. Zunächst habe ich eine Basis mit MDI genommen. Die MDI Formulare werden Menue bei Bedarf synamisch erzeugt und zerstört, wenn sie nicht mehr benötigt werden. Es geht hier um ein Verwaltungssystem für Versicherungsverträge, das sehr komplex ist. Die Formulare z.B. für Kunden, Versicherer, Verträge, Termine sind MDI, die über PageControls die zugehörigen Daten wie Telefonverzeichnis, Bankverbindungen, Dokumente, Terminübersichten bereitstellen. Es werden sehr oft mehrere Formulare gleichzeitig benötigt. Man kann mit MDI z.B. das Hauptformular wenn nötig über 2 Monitore ziehen und hat so sehr viel Platz für 3, 4 oder 5 gleichzeitige Formulare. Wenn dies gerade nicht benötigt wird, laufen die einzelnen Formulare im Vollbildmodus. Diese flexible Handhabung geht eben mit MDI gut. Alles komplett mit PageControls wäre nicht so flexibel. Die Auswahl von Daten habe ich über Einzelformulare SDI gelöst, die über einen Button im Editcontrol dynamisch erzeugt werden und modal öffnen. Wenn der Cursor auf dem gewünschten Datensatz steht geht die Übernahme der Daten mit Doppelklick oder Butten. Die gesamte Bedienung über Menü und Pagecontrols geht so recht gut mit Tastatur und Maus, oder auch mit Touch. Alle Buttonbars für die Firebird DB sind groß genug für Touch. Schrift ist auf 12 Punkt gestellt. Das Tablet mit Windows 10 Prof. skaliert mit 150%. So hat die Oberfläche auf dem 11" Tablet eine angenehme Größe. Nicht ganz toll auf dem Tablet ist das Systemmenü, das einfach zu klein ist. Mit Stift geht das, mit Finger nicht so gut. Man sollte das mit MainMenu.OwnerDraw := true und TMenuItem.OnDrawItem ändern können. Funktioniert bei mir leider nicht. Wenn ich in DrawItem über ACanvas.Font.Size eine andere Größe zuweise, wird der Menüeintrag nicht mehr dargestellt, ist grau.

K.-D.
Delphi 6 Prof., Delphi 10 Seattle Prof., IBO 4, IBO 5, Firebird 2.5, Windows 10 Prof.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
530 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#9

AW: MDI mit Delphi 10 Seattle

  Alt 3. Apr 2019, 11:50
Eine unwichtige, persoenliche, subjektive Meinung:
...braucht doch kein Mensch...
Damit sprichst du mir (und vieler der Anwender meiner Software) das Menschsein ab
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
1.784 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: MDI mit Delphi 10 Seattle

  Alt 3. Apr 2019, 13:51
Microsoft selbst ist in diesen Dingen über die Jahre auch sehr inkonsequent gewesen. Eine Zeit lang war MDI schwer angesagt. Dann kam TabbedUI, was genau so lange "In" war, bis man für Office das RibbonUI erfand. Und zwei Tabreihen übereinander hätte wohl doof ausgesehen. Also wurde als nächstes "StackedUI" erfunden, was im Prinzip wieder das uralte SDI ist (Vorgänger von MDI), nur dass es halt jetzt über die Superbar (gemeinhin Taskleiste genannt) gruppiert wird.

Wenns dann noch richtig dicke kommt, hat der Anwender mehrere Monitore, die obendrein auch noch unterschiedliche Auflösungen haben und/oder einer hoch- und einer querformatig ausgerichtet. Da bist dann sowohl mit MDI als auch mit TabbedUI verloren. Insofern halte ich die aktuelle Präferenz von Microsoft für "StackedUI" für die beste Variante.

Heißt für mich: Ein Formular, ein Fenster. Die schiebt man sich halt als Anwender so zurecht dass es passt. Windows hat ja von Haus aus schon Mittel, dass sich Fenster am Bildschirmrand einrasten und ausrichten lassen. Man kann seinen Fenstern auch beibringen, aneinander einzurasten. So ähnlich wie das schon vor 20 Jahren der Winamp mit seinen drölfzig Toolfenstern gemacht hat.

EDIT: MDI hat für mich auch den "optischen" Nachteil, dass MDI-Childs unter Windows 10 mit dem Border von Vista-Basic gezeichnet werden. Das wirkt dann insgesamt ziemlich altbacken und unstimmig. Wobei ich das nie mit VCL-Styles getestet habe.

Ich wuerde an Deiner Stelle nicht auf ein totes Pferd setzen...
Das sehe ich genauso.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber.

Geändert von Codehunter ( 3. Apr 2019 um 13:58 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:28 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf