AGB  ·  Datenschutz  ·  Impressum  







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

Anordnung der Buttons in Messagedlg

Ein Thema von Maekkelrajter · begonnen am 10. Okt 2021 · letzter Beitrag vom 11. Okt 2021
Antwort Antwort
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#1

Anordnung der Buttons in Messagedlg

  Alt 10. Okt 2021, 13:58
Kann man im (VCL-) Messagedialog die Anordnung, d. h. die Reihenfolge der Buttons beeinflussen?. Die Reihenfolge der Elemente in 'Buttons' hat leider keinen Einfluss auf die Anordnung der Buttons im Dialog.

Messagedlg('Nur Markierte Tracks durchsuchen? ',mtConfirmation[mbYes,mbYesToAll,mbCancel],0);
sieht genauso aus wie
Messagedlg('Nur Markierte Tracks durchsuchen? ',mtConfirmation[mbYes,mbCancel,mbYesToAll],0);
oder
Messagedlg('Nur Markierte Tracks durchsuchen? ',mtConfirmation[mbYesToAll,mbYes,mbCancel],0);
(siehe Anhang links)

Nach meinem Empfinden sollte der 'Abbruch' - Button an letzter Stelle stehen, siehe Anhang rechts (jpg 'gefälscht'). Natürlich könnte ich den Dialog selbst basteln, aber vielleicht habe ich ja nur die entscheidende Stellschraube übersehen?

Gruß LP
Miniaturansicht angehängter Grafiken
markiertetracks-ist-.jpg   markiertetracks-soll-.jpg  

Geändert von Maekkelrajter (10. Okt 2021 um 14:00 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#2

AW: Anordnung der Buttons in Messagedlg

  Alt 10. Okt 2021, 14:34
Die Reihenfolge der Elemente in 'Buttons' hat leider keinen Einfluss auf die Anordnung der Buttons im Dialog.
Das ist korrekt. Da es sich dabei um ein Set TMsgDlgButtons handelt ist die Reihenfolge der Elemente egal. Bei der Erstellung der Buttons wird die Reihenfolge der zugrunde liegenden Typs TMsgDlgBtn verwendet:
Delphi-Quellcode:
  TMsgDlgBtn = (mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore,
    mbAll, mbNoToAll, mbYesToAll, mbHelp, mbClose);
Das kann man auch nicht beeinflussen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Anordnung der Buttons in Messagedlg

  Alt 10. Okt 2021, 14:46
Nja, die Reihenfolge so mancher Buttons fand ich auch schon immer etwas "ungünstig". (vorallem von den "ALL"-Buttons)

Du kannst dir einen eigenen Dialog bauen.
Da sind sogar ein paar überalterte Unit-Vorlagen in Datei > Neu enthalten.

Du könntest Delphi-Referenz durchsuchenCreateMessageDialog verwenden, welcher den Windowsdialog mit der VCL nachbaut.
Da könntest du dann die Captions der Buttons ändern.
Dieses CreateMessageDialog wird von der VCL intern auch verwendet, wenn man "neuere" Dialoge auf uralten Windowsen anzeigen will, oder wenn dort die "neuen" CommonControlsV6 deaktiviert sind, wenn z.B. im Windows 7 oder Server2016 die Designs deaktiviert wurden, weil jemand denkt der Win2000-Style wäre soooo cool und dabei vergisst, dass es nicht nur das Design beeinflusst, sondern auch die Verfügbarkeit/Version gewisser APIs.

Oder du machts es richtig und beschäftigst dich mit TTaskDialog oder direkt mit der TaskDialog-WinAPI.
$2B or not $2B

Geändert von himitsu (10. Okt 2021 um 22:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: Anordnung der Buttons in Messagedlg

  Alt 10. Okt 2021, 14:58
Ich würde bei Dialoge die mehr als zwei Auswahloptionen anbieten den TaskDialog nutzen.
Damit kannst du auch etwas Erklärungstext unterbringen.

Mehr als 2 Button bei normalen MessageDialog halte ich für Benutzerunfreundlich, da die fertigen Button-Texte meinstens nicht 100%ig passen und man dann eh überlegen muss was genau jetzt sich hinter den aktuellen (über Ja/Nein oder OK/Abbrechen) verbirgt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Maekkelrajter

Registriert seit: 8. Mär 2017
Ort: Köln
157 Beiträge
 
Delphi 12 Athens
 
#5

AW: Anordnung der Buttons in Messagedlg

  Alt 10. Okt 2021, 23:52
Ich muss zu meiner Schande gestehen, dass ich TTaskDialog, wie so viele Features der neueren Delphi-Versionen, überhaupt nicht kannte. Ist zwar etwas aufwändiger zu implementieren, aber dafür ungleich flexibler als der Standard Message Dialog. Im konkreten Fall sieht meine Lösung (Rohfassung) schon recht ordentlich aus (s. Anhang) Danke für die Tipps in dieser Richtung!

Gruß LP
Miniaturansicht angehängter Grafiken
markiertetracks-taskdialog-.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#6

AW: Anordnung der Buttons in Messagedlg

  Alt 11. Okt 2021, 00:40
Im Prinzip verstößt schon dieser Dialog gegen die Designrichtlinien von Microsoft.
* Erstmal sind wichtige Infos sinnlos doppelt vorhanden
* und man muß den Text genau lesen, um die Buttons wirklich richtig zu verstehen.

https://docs.microsoft.com/en-us/win...#command-links



Nja, bei Dingen, wie Löschen könnte man [Löschen] und [Abbrechen] mit einer "Bestätigen" oder "Alles"-Checkbox kombinieren,
oder man nimmt TaskButtons (siehe Flags tfUseCommandLinks).

Hier sind die "Haupt"-Texte kurz genug, so dass man sie komplett als Captions der Buttons verwenden könnte.

taskdialog.png

Wenn mehr als Einwas markiert ist, dann das Markierte als Standard/Default.
Bei nur einem Markierten könnte man sich überlegen "Alles" als Default zu machen. (oder man lässt den Dialog immer gleich und belässt es bei "nur Markiertes")
Und bei keinem Markierten sollte darf "nur Markiertes" eigentlich garnicht zur Auswahl stehen. (oder es muß nachher eben eine Fehlermeldung kommen, siehe vorherriges Oder)


Die Klasse von Delphi hat noch paar kleine Macken/Fehlstellen, aber die grundlegenden Dinge sind schon drin. (Buttons, RadioButtons, CheckBoxen, Icons und ProgressBar)
Die Dialoge wie vom UAC (Name+Passwort) oder der KopierDialog sind die Fortsetzung.
https://tmssoftware.com/site/blog.asp?post=57
$2B or not $2B

Geändert von himitsu (11. Okt 2021 um 01:07 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.623 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#7

AW: Anordnung der Buttons in Messagedlg

  Alt 11. Okt 2021, 10:53
Bevor Du Dir einen eigenen Dialog baust, kannst Du Dir mal die w_dzDialog Unit in meiner dzlib anschauen, da haben ich nämlich genau diesen Dialog nachgebaut, weil mir diverse Dinge fehlten. Ich weiss aber gerade nicht, wie dort die Reihenfolge der Buttons festgelegt ist, zur Not gibt es aber "Custom" Buttons, die man explizit definieren kann.

https://osdn.net/projects/dzlib-tool...ot=dzlib-tools
Thomas Mueller
  Mit Zitat antworten Zitat
venice2
(Gast)

n/a Beiträge
 
#8

AW: Anordnung der Buttons in Messagedlg

  Alt 11. Okt 2021, 12:12
Zitat:
Im Prinzip verstößt schon dieser Dialog gegen die Designrichtlinien von Microsoft.
Was interessieren schon die Designrichtlinien von $MS erlaubt ist was gefällt und für die aktuelle Situation benötigt wird.
Na ja bin halt ein Sonderfall hier!
Kein Komponente, keine VCL alles Selber machen ein paar Bildchen und das war's.
Nur schade das über die Jahre hinweg sich niemand dafür hier jemand Interessiert hat.

Geändert von venice2 (11. Okt 2021 um 12:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

AW: Anordnung der Buttons in Messagedlg

  Alt 11. Okt 2021, 12:31
Ein großer Teil von dem, was die sich vorstellen, ist garncht so verkehrt.

Und es kann nicht schaden, wenn die meisten Programme eines Systems ein ähnliches/konstistentes Verhalten haben, damit die Nutzer es "intuitiver" bedienen können.

Wäre schon ein klein Bissl blöd, wenn jedes Programm sich selbst entscheiden würde, ob man Aktionen mit der linken oder rechten Maustaste ausfüheren soll,
oder ob eben [OK] [Abbrechen] oder [Abbrechen] [OK] oder [好的] [中止] oder [中止] [好的] oder [擦除硬盘] [发布个人数据] [没有] oder
$2B or not $2B

Geändert von himitsu (11. Okt 2021 um 12:36 Uhr)
  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 02:32 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