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 Position bei TaskDialogIndirect (https://www.delphipraxis.net/89660-position-bei-taskdialogindirect.html)

ringli 3. Apr 2007 19:03


Position bei TaskDialogIndirect
 
Standardmässig wird das Hinweisfenster welches von der Funktion TaskDialogIndirect erzeugt wird, ja zentriert auf dem Monitor dargestellt. Laut MSDN gibt es bei den dwFlags aber die Option über das Flag TDF_POSITION_RELATIVE_TO_WINDOW das Hinweisfenster zentriert über der aufrufenden Anwendung zu zentrieren. Leider funktioniert das bei mir nicht.

Source kann ich leider nicht viel zeigen da ich die TaskDialogkomponente von TMS verwende und die wohl etwas dagegen hätten wenn ich deren Source hier rein stelle.

Zitat:

Zitat von MSDN
TDF_POSITION_RELATIVE_TO_WINDOW
Indicates that the task dialog should be positioned (centered) relative to the window specified by hwndParent. If the flag is not supplied (or no hwndParent member is specified), the task dialog is positioned (centered) relative to the monitor.

Deklariert ist TDF_POSITION_RELATIVE_TO_WINDOW in der Komponente folgendermaßen:
Delphi-Quellcode:
const
  TDF_POSITION_RELATIVE_TO_WINDOW = $1000;
Den Source von TMS habe ich entsprechend erweitert (das ShowMessage() ist da nur drinne weil ich sehen wollte ob die Codestelle überhaupt ausgeführt wird):
Delphi-Quellcode:
if FDlgPosition = dpOwnerFormCenter then
  begin
    //showmessage('test');
    TaskDialogConfig.dwFlags := TaskDialogConfig.dwFlags or TDF_POSITION_RELATIVE_TO_WINDOW;
  end;
So und jetzt meine Frage: Hat jemand schon mal erfolgreich dieses Flag gesetzt und kann mir sagen ob bzw. was ich falsch mache?

ringli 6. Apr 2007 16:10

Re: Position bei TaskDialogIndirect
 
Hat keiner eine Idee? :cry:

Luckie 6. Apr 2007 21:48

Re: Position bei TaskDialogIndirect
 
Schreib mal an MathiasSimmack eine PN, der kennt sich damit aus.

ringli 7. Apr 2007 17:17

Re: Position bei TaskDialogIndirect
 
So, mit der Hilfe von Mathias hat es geklappt. :-)

Der Fehler lag darin das TaskDialogIndirect in der Komponente das Application-Handle übergeben wurde. Übergibt man das Form-Handle wird auch das erstellte Hinweisfenster über der aufrufenden Anwendung zentriert.


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