TadvTaskdialog does not scale very well on HiDPI

TadvTaskdialog does not scale very well on HiDPI (MonitorV2) when using td.NonNativeDialog := nndAlways


Especially the Caption of the VerificationCheckbox stays the same size when the MessageBox is moved from on Monitor to another with different DPI.

The icons are not resized (Header, Footer)

The captions of the Radiobuttons are not resized.

The dialog itself is also flickering multiple times when moved between monitors (with different DPI).

Here is an example (taken from the supplied adv-demos):
   td := tAdvTaskDialog.Create(self);
   td.Clear;
   td.DialogPosition := dpOwnerFormCenter;
   td.NonNativeDialog := nndAlways;

   td.Title := 'Caption text';
   td.Instruction := 'Instructions';
   td.Content := 'This is an example text';

   td.RadioButtons.Add('Button 1');
   td.RadioButtons.Add('Button 2');
   td.DefaultRadioButton := -1;

   td.VerificationText := 'Do not show again';

   td.CommonButtons := [];
   td.CommonButtons := td.CommonButtons + [cbOK];
   td.CommonButtons := td.CommonButtons + [cbCancel];
   td.DefaultButton := 0;

   td.Footer := 'Footermessage';
   td.FooterIcon := tfiError;

   td.Icon := tiWarning;

   td.Execute;

   td.Free;

I found the error in TaskDialog.pas in WMDpiChanged. You did not call inherited before calling UpdateDialog.


procedure TAdvMessageForm.WMDpiChanged(var Message: TWMDpi);
begin
  inherited;         // Needs to be added for HiDPI-Scaling to work correctly
  UpdateDialog;
end;

Thanks for reporting. The next update will address this.