Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: VCL TTaskDialog Z-Order Problem

  Alt 4. Jun 2022, 12:22
Hier geht es ohne Probleme und ist immer vorne, egal ob mit oder ohne Handle.
Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
begin
  //TaskDialog1.Execute;
  TaskDialog1.Execute(Self.Handle);
end;

procedure TForm8.Button2Click(Sender: TObject);
begin
  TForm8.Create(Self).Show;
end;
Allerdings stimmt was mit dem PopupMode nicht.
Alle neuen Fenster sind immer vorne, so als wenn wie die MainForm als PopupParent verwenden würden.




Das mit dem "Parent" ist richtig so.
Bei vielen VCL-Dialogen hat die Execute-Funktion zwar einen Parent-Parameter,
aber oftmals wird Dieser intern garnicht verwendet, weil die jeweilige API keinen Parent unterstützt.

Beim TaskDialog wird der Parent zwar durchgereicht, aber man lese mal den Kommentar.
Delphi-Quellcode:
  TASKDIALOGCONFIG = record
    cbSize: UINT;
    hwndParent: HWND; // incorrectly named, this is the owner window, not a parent.
Obwohl die Hilfe MSDN-Library durchsuchenTASKDIALOGCONFIG was Anderes sagt.
Zitat:
Handle to the parent window. This member can be NULL.
Womöglich wird der Wert nur für die XY-Position verwendet, aber nicht für Z? (TDF_POSITION_RELATIVE_TO_WINDOW aka tfPositionRelativeToWindow)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 4. Jun 2022 um 12:32 Uhr)
  Mit Zitat antworten Zitat