Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Taskdialog und Hilfe-Knopf (https://www.delphipraxis.net/196305-taskdialog-und-hilfe-knopf.html)

freimatz 9. Mai 2018 20:45

Taskdialog und Hilfe-Knopf
 
Hallo,
ich spiele gerade mal mit dem Taskdialog herum. Dazu verwende ich SynTaskDialog, das sollte aber keine Rolle spielen.
Gerne hätte ich einen Dialog mit zusätzlich einem Hilfe-Knopf, also z.B. Ja, Nein, Hilfe.
Wenn ich den Button hinzufüge, dann erscheint der bei mir entweder
a) als erstes also dann Hilfe, Ja, Nein oder
b) als großer Tasklink wenn ich TDF_USE_COMMAND_LINKS angebe.
Beides will ich nicht. Geht das nicht oder doch? Wenn ja wie?

himitsu 10. Mai 2018 01:23

AW: Taskdialog und Hilfe-Knopf
 
Stell dir einfach vor wie blöd es für Sehbehinderte wäre, wenn du deine Ampel verkehrtrum aufhängst.

freimatz 11. Mai 2018 07:55

AW: Taskdialog und Hilfe-Knopf
 
Hallo,
Danke für Deine Antwort. Allerdings verstehe ich nicht so recht was Du damit sagen willst. Das existierende Programm, für das ich den Taskdialog verwenden will, hat keine Ampel. (Bei einem anderen Programm habe ich tatsächlich eine Ampel eingebaut, die liegt aber quer).
Meinst Du die Reihenfolge die ich verwende wäre verkehrt? Gibt es da Standards? Diese Reihenfolge verwende ich seit gut 25 Jahren so. Meine Anwender wären irritiert wenn die nun anders wäre. Und das gilt sicherlich auch für blinde Anwender, von denen es auch einige gibt.

Sherlock 11. Mai 2018 09:42

AW: Taskdialog und Hilfe-Knopf
 
Ja, es gibt Standards.
https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

Sherlock

himitsu 11. Mai 2018 11:00

AW: Taskdialog und Hilfe-Knopf
 
Manchmal ändern sich auch Standards Designvorgaben.
Und jedes System (Windows, Linux, Mac, ...) hat seine eigenen Vorgaben, die sich aber in großen Teilen dann doch wieder gleichen.

z.B. ob der Buttonbereich optisch abgegrenzt ist, ob man flache/unsichtbare oder 3D-Buttons hat oder ob die Dialog-Buttons links, mittig oder rechts sind.



Die Frage ist dann, soll dein Programm über jahre immer gleich sein, oder sollen sich die Benutzer wundern, warum dein Programm es anders macht, als wie alle anderen Programme auf ihrem System?
Win3.1-Style, WinNT, das bunte XP, das noch buntere Vista oder das platte farblose 8/10.

freimatz 11. Mai 2018 12:46

AW: Taskdialog und Hilfe-Knopf
 
Den Standard auf MSDN habe ich gelesen. Von einer Hilfe ist dort allerdings nicht die Rede.

Meine neuen Benutzer dürfen sich gerne wundern, dass es da noch ein Programm gibt, das zu manchen Meldungen und Rückfragen eine Hilfe anbietet. :wink:
Diese Hilfe einfach weglassen nur weil es andere auch nicht machen will ich im Moment noch nicht.

Mit meiner Frage bin leider noch nicht weiter.
Zitat:

Zitat von freimatz (Beitrag 1401749)
Gerne hätte ich einen Dialog mit zusätzlich einem Hilfe-Knopf, also z.B. Ja, Nein, Hilfe.
Wenn ich den Button hinzufüge, dann erscheint der bei mir entweder
a) als erstes also dann Hilfe, Ja, Nein oder
b) als großer Tasklink wenn ich TDF_USE_COMMAND_LINKS angebe.
Beides will ich nicht. Geht das nicht oder doch? Wenn ja wie?


KodeZwerg 11. Mai 2018 14:49

AW: Taskdialog und Hilfe-Knopf
 
Warum erstellst Du Dir nicht einfach eine Eigene Dialog Class oder noch einfacher eine Form (mit ShowModal aufrufen)? Dann bist Du befreit von den Standards da es Dein Eigener ist.

KodeZwerg 11. Mai 2018 16:01

AW: Taskdialog und Hilfe-Knopf
 
Ich habe mal ein wenig mit dem TaskDialog rumgespielt, hier ist eine Interessante Detailierte Variante bei rausgekommen die es so macht wie Du wolltest, Ja -> Nein -> Hilfe

Delphi-Quellcode:
with TTaskDialog.Create(self) do
  try
    Title := 'TaskDialog Beispiel Überschrift';
    Caption := 'Dialog by KodeZwerg';
    Text := 'Hier kommt eine Beschreibung für den Dialog rein.';
    CommonButtons := [];
    with TTaskDialogButtonItem(Buttons.Add) do
    begin
      Caption := 'Ja';
      CommandLinkHint := 'Beschreibung für "Ja".';
      ModalResult := mrYes;
    end;
    with TTaskDialogButtonItem(Buttons.Add) do
    begin
      Caption := 'Nein';
      CommandLinkHint := 'Beschreibung für "Nein".';
      ModalResult := mrNo;
    end;
    with TTaskDialogButtonItem(Buttons.Add) do
    begin
      Caption := 'Hilfe';
      CommandLinkHint := 'Beschreibung für "Hilfe".';
      ModalResult := MB_HELP;
    end;

    Flags := [tfUseCommandLinks, tfAllowDialogCancellation];
    ExpandButtonCaption := 'Technische Informationen';
    ExpandedText := 'Hier kommt eine erweiterte Beschreibung rein.';
    MainIcon := tdiNone; //such Dir ein Icon aus: tdiNone tdiWarning tdiError tdiInformation tdiShield
    if Execute then
     case ModalResult of
       mrYes: begin end; //MachWasMitJa;
       mrNo: begin end; //MachWasMitNein;
       MB_HELP: begin end; //MachWasMitHelp;
     end;
  finally
    Free;
  end;

KodeZwerg 11. Mai 2018 16:21

AW: Taskdialog und Hilfe-Knopf
 
Noch ein Beispiel für einen TaskDialog, inkl. Ja -> Nein -> Hilfe Reihenfolge.
Das entspricht dem minimal Windows Standard-Stil.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  TaskDialog: TTaskDialog;
  Button: TTaskDialogBaseButtonItem;
begin
  TaskDialog := TTaskDialog.Create(Self);
  TaskDialog.Caption := 'Dialog by KodeZwerg';
  TaskDialog.Title := 'TaskDialog Beispiel Überschrift';
  TaskDialog.Text := 'Hier kommt eine Beschreibung für den Dialog rein.';
  TaskDialog.MainIcon := tdiNone; //tdiNone tdiWarning tdiError tdiInformation tdiShield
  TaskDialog.CommonButtons := [];
  Button := TaskDialog.Buttons.Add;
  Button.Caption := 'Ja';
  Button.ModalResult := mrYes;
  Button := TaskDialog.Buttons.Add;
  Button.Caption := 'Nein';
  Button.ModalResult := mrNo;
  Button := TaskDialog.Buttons.Add;
  Button.Caption := 'Hilfe';
  Button.ModalResult := MB_HELP;
  // bis hier ist der Dialog konfiguriert
  if TaskDialog.Execute then
  begin
   case TaskDialog.ModalResult of
     mrYes: begin end;//MachWasMitJa
     mrNo: begin end;//MachWasMitNein
     MB_HELP: begin end;//MachWasMitHelp
   end;
  end;
  Button.Free;
  TaskDialog.Free;
end;

freimatz 11. Mai 2018 16:54

AW: Taskdialog und Hilfe-Knopf
 
:shock: Danke. :thumb:
Auf die Idee die Standard-Buttons wie "Ja" auch selber zu machen bin ich nicht gekommen. Werde das mal ausprobieren.
Was dann wohl nicht geht wäre Tasklinks und die kleinen Buttons gemischt. Also z.B.
Code:
-> Variante 1
   Um jenes zu tun
-> Variante 2
   Doch lieber das andere
                  [Abbrechen] [Hilfe]

Ich habe früher auch viel selbst gemacht bin aber zur Überzeugung gekommen dass es öfters besser ist das vom System vorgegebene zu benutzen. Am meisten habe ich es gemerkt am "Datei öffnen" Dialog.

KodeZwerg 11. Mai 2018 17:10

AW: Taskdialog und Hilfe-Knopf
 
Ich verstehe gerade nicht was Du meinst.
Probiere mal beide Varianten durch um erstmal zu Bestimmen ob es überhaupt in die richtige Richtung geht.
Meine Beispiele sind sehr einfach gehalten wie man sieht.
Es gibt sicherlich noch mehr Optionen die man setzen kann, einfach mal in der Hilfe bzw im Quelltext nachschauen.
Man kann Hyperlinks einfügen und so was...
Ausgewertet wird ModalResult, die Definition kann man der Button-Zuweisung entnehmen.
Man kann dutzende Dialoge vorbereiten und per Code abrufen, das sollte kein Problem darstellen.
Wenn Dir eine der Varianten gefällt kann man eine Funktion daraus basteln damit du auf das Result reagieren kannst.

KodeZwerg 11. Mai 2018 21:40

AW: Taskdialog und Hilfe-Knopf
 
Zitat:

Zitat von freimatz (Beitrag 1401858)
Was dann wohl nicht geht wäre Tasklinks und die kleinen Buttons gemischt.

Zeig mir Code wie es jetzt gerade funktioniert und ich adaptiere ihn in mein Beispiel rein. Bis jetzt sah ich nur Fragen aber keinen Code.
Ps: Mit FORMS hab ich keine Ahnung, sag ich gleich vorweg, ich kann es nur per runtime hinbekommen. Wenn Du es per OI haben willst bräuchte ich ein einigermassen Lauffähiges Beispiel Projekt von Dir und ich probiere ob ich helfen kann.
Zitat:

Zitat von freimatz (Beitrag 1401858)
...bin aber zur Überzeugung gekommen dass es öfters besser ist das vom System vorgegebene zu benutzen.

Dann musst Du mit dem vorgegebenen Leben und es nicht ändern wollen :lol:
Wobei ich eher Individuelle mag selbst wenn es nur Standard ist. Der Anwender sieht ja nicht wie Du den Dialog aufrufst :-D
In meinen Beispielen fehlt unter anderem komplett die Fehlerkontrolle.
Sie zeigen lediglich das es möglich ist und wie man es anstellt. Es gibt bestimmt noch mehr Varianten die auf ähnliches hinauslaufen.
Zitat:

Zitat von freimatz (Beitrag 1401858)
Am meisten habe ich es gemerkt am "Datei öffnen" Dialog.

Da gebe ich Dir Recht. Wobei man per runtime auch ein mächtiges "Datei öffnen" hinbekommt hehe

freimatz 1. Dez 2018 15:52

AW: Taskdialog und Hilfe-Knopf
 
Hallöchen,
recht spät, aber ich wollte den Beitrag nicht so enden lassen. Ich habe nun heute mein Programm auf Taskdialoge umgestellt. Habs gelöst mit dem Standard-TTaskDialog von Delphi. Den Hilfe-Knopf habe ich nun mit einem Link im Footer ersetzt.
Danke für alle Hilfe. :thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:18 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