Einzelnen Beitrag anzeigen

ringli

Registriert seit: 7. Okt 2004
510 Beiträge
 
Delphi 11 Alexandria
 
#1

Position bei TaskDialogIndirect

  Alt 3. Apr 2007, 20:03
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 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?
  Mit Zitat antworten Zitat