Einzelnen Beitrag anzeigen

Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.530 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TColorDlg und HiDPI - Gibt es eine Lösung?

  Alt 4. Nov 2022, 23:41
OK, erledigt, habe hier einen Tipp gefunden, den man für alle CommonDialoge anwenden kann:

https://quality.embarcadero.com/brow...ColorDialog%22

Habe also das vor dem Tform als Type deklariert:

Delphi-Quellcode:
TColorDialog = class(Vcl.Dialogs.TColorDialog)
  protected
    function TaskModalDialog(DialogFunc: Pointer; var DialogData): Bool; override;
  end;
und in der Implementation das:

Delphi-Quellcode:
function TColorDialog.TaskModalDialog(DialogFunc: Pointer; var DialogData): Bool;
var
  previousDpiContext: DPI_AWARENESS_CONTEXT;
begin
  previousDpiContext := SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_SYSTEM_AWARE);
  try
    Result := inherited TaskModalDialog(DialogFunc, DialogData);
  finally
    SetThreadDpiAwarenessContext(previousDpiContext);
  end;
end;
Zwar ist der Dialog auf dem Low_Moitor dann nicht highdpi, aber wenigstens sieht er anständig aus...
  Mit Zitat antworten Zitat