AGB  ·  Datenschutz  ·  Impressum  







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

MDI mit Delphi 10 Seattle

Ein Thema von kdf · begonnen am 1. Apr 2019 · letzter Beitrag vom 13. Apr 2019
Antwort Antwort
Rainer Wolff

Registriert seit: 25. Okt 2005
Ort: Bretten
321 Beiträge
 
Delphi 10.4 Sydney
 
#1

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
128 Beiträge
 
Delphi 10 Seattle Professional
 
#2

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., Windows 11 Prof.
  Mit Zitat antworten Zitat
hzzm

Registriert seit: 8. Apr 2016
103 Beiträge
 
Delphi 10 Seattle Professional
 
#3

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
128 Beiträge
 
Delphi 10 Seattle Professional
 
#4

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., Windows 11 Prof.
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.490 Beiträge
 
Delphi 11 Alexandria
 
#5

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
2.284 Beiträge
 
Delphi 12 Athens
 
#6

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. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden

Geändert von Codehunter ( 3. Apr 2019 um 13:58 Uhr)
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: MDI mit Delphi 10 Seattle

  Alt 3. Apr 2019, 14:02
Zitat:
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.
Wegen sowas muss man doch nicht gleich ein Konzept verwerfen. Code ordentlich in Unterunits aufteilen und kategorisieren wäre da die bessere Wahl gewesen.

Die Hauptunit eines meiner umfangreicheren Programme mit mehr als 80.000 LOC hat mit einer 50 zeiligen Kommentarsektion 828 Zeilen. Und selbst das kann man noch optimieren.
Der eigentliche Code ist aber in bestimmt 50 Unterunits und Funktionen sowie Prozeduren ausgelagert.

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

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

AW: MDI mit Delphi 10 Seattle

  Alt 7. Apr 2019, 10:43
Für diesen Mix aus MDI, SDI und PageControl habe ich mich jetzt zunächst entschieden, da ich die Möglichkeit bei MDI habe, die Fenster beliebig und frei positionieren kann. Es ist mir wichtig, 4 - 5 Fenster so positionieren zu können, dass alle gleichzeitig für den Benutzer nutzbar sind, ohne hier zwischen Tabs schalten zu müssen. Eine Lösung allein mit PageControl kann das ja nicht. Wenn man das ggf. auch bauen könnte (wie Firefox), mit MDI ist das schon fertig. Von der Bedienbarkeit her, mit touch alleine, ist das einfacher. Die Lösung der Fenster von Microsoft (Office 2016) finde ich nicht sehr praktikabel, wenn man mit mehreren Dokumenten gleichzeitig arbeiten muß.

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


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 23:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz