Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Vista TaskDialog (https://www.delphipraxis.net/128707-vista-taskdialog.html)

Willie1 4. Feb 2009 11:54


Vista TaskDialog
 
Hallo,
ich will den Vista TaskDialog benutzen und nehme als Einstieg den Code von romber
Delphi-Quellcode:
 
begin
    DLLHandle := LoadLibrary('comctl32.dll');
    if DLLHandle >= 32 then
    begin
      @TaskDialogProc := GetProcAddress(DLLHandle,'TaskDialog');

      if Assigned(TaskDialogProc) then  //<xxxxxxxxx
      begin
        beep;

        StringToWideChar(ATitle, wTitle, sizeof(wTitle));
        StringToWideChar(ADescription, wDescription, sizeof(wDescription));
        StringToWideChar(AContent, wContent, sizeof(wContent));
        TaskDialogProc(AForm.Handle, 0, wTitle, wDescription, wContent, Buttons,Icon,@res);

        Result := mrOK;

        case res of
        DLGRES_CANCEL : Result := mrCancel;
        DLGRES_RETRY : Result := mrRetry;
        DLGRES_YES : Result := mrYes;
        DLGRES_NO : Result := mrNo;
        DLGRES_CLOSE : Result := mrAbort;
        end;
      end;
      FreeLibrary(DLLHandle);
    end;
  end
Ich schreibt, es klappt wunderbar. Bei mir tut sich gar nichts. Comctl32.dll wird geladen aber "TaskDialog" darin wohl nicht gefunden. Siehe dort <xxxxxxxx. Was mache ich falsch?.

MfG Willie

Luckie 4. Feb 2009 11:57

Re: Vista TaskDialog
 
Guck mal hier: http://www.michael-puff.de/Artikel/V...skDialog.shtml

Willie1 4. Feb 2009 12:04

Re: Vista TaskDialog
 
Danke Luckie!
Nur TD_ICON_QUESTION zeigt keineswegs ein Fragezeichen sondern ein Blatt Papier - 99 zeigt das übliche Fragezeichen.

W.

Luckie 4. Feb 2009 12:30

Re: Vista TaskDialog
 
Zitat:

Zitat von Willie1
Danke Luckie!
Nur TD_ICON_QUESTION zeigt keineswegs ein Fragezeichen sondern ein Blatt Papier - 99 zeigt das übliche Fragezeichen.

Komisch, aber dazu kannich jetzt auch nichts sagen. :gruebel:

Bernhard Geyer 4. Feb 2009 13:24

Re: Vista TaskDialog
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Willie1
Danke Luckie!
Nur TD_ICON_QUESTION zeigt keineswegs ein Fragezeichen sondern ein Blatt Papier - 99 zeigt das übliche Fragezeichen.

Komisch, aber dazu kannich jetzt auch nichts sagen. :gruebel:

Gabs nicht am Anfang mal fehler in der MSDN-Doku bezüglich den Icon-ID's :gruebel:

Willie1 4. Feb 2009 18:11

Re: Vista TaskDialog
 
Bernhard, das dürfte stimmen, denn alle Konstantennamen passen nicht zur gezeigten Ikone.
Hier sind die Richtigen!
Delphi-Quellcode:
const
  TD_ICON_BLANK = 0;
  TD_ICON_WARNING = 84;
  TD_ICON_QUESTION = 99;
  TD_ICON_ERROR = 98;
  TD_ICON_INFORMATION = 81;
  TD_ICON_SHIELD_QUESTION = 104;
  TD_ICON_SHIELD_ERROR = 105;
  TD_ICON_SHIELD_OK = 106;
  TD_ICON_SHIELD_WARNING = 107;
Willie

Willie1 5. Feb 2009 11:43

Re: Vista TaskDialog
 
Hallo Luckie,
danke für dein hilfreiches Demo-Programm. Es ist mir nur aufgefallen, dass TaskDialogIndirect nicht Modal geöffnet wird. Es lässt sich z.B. mit Schließen des Hauptfensters einfach übergehen, das ist ja nicht im Sinne des Nutzers. Was habe ich übersehen (ein FLAG) ?

Gruß Willie.

Willie1 7. Feb 2009 15:06

Re: Vista TaskDialog
 
Hat sich erledigt. Ich weiß die Antwort.
W.

Luckie 8. Feb 2009 19:23

Re: Vista TaskDialog
 
Zitat:

Zitat von Willie1
Hat sich erledigt. Ich weiß die Antwort.
W.

Lässt du uns auch an deinem Wissen teilhaben?

Willie1 10. Feb 2009 10:54

Re: Vista TaskDialog
 
Zitat:

Zitat von Luckie
Zitat:

Zitat von Willie1
Hat sich erledigt. Ich weiß die Antwort.
W.

Lässt du uns auch an deinem Wissen teilhaben?

hwndParent den Handle des Parent-Formulars zuweisen.

Willie.


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