In der Standardeinstellung kümmert sich Windows um das Scalieren.
Intern bleibt die Scalierung gleich, also für dein Programm ändert sich nichts (intern bleibt die DPI unverändert) und Windows stellt das Fesnter nur größer/kleiner dar.
Du könntest nachsehn ob und wann sich die DPI für dein Fenster ändern (Haltepunkt rein)
Delphi-Quellcode:
protected
procedure ChangeScale(M, D: Integer; isDpiChange: Boolean); override;
Mit HighDPI Per Monitor V2 aktualisiert sich aber doch PixelPerInch.
Das Problem ist nur ich passe die Komponenten aktuell im FormCreate an. Wenn die Form erstmal sichtbar ist passt auch PixelPerInch.
Nur ich weiß nicht ab wann mein Form auf den richtigen Monitor geht.
Während des FormCreate und FormShow ist die Form von der Position noch auf Monitor 1. wenn es dann aber da ist ist es auf Monitor 2 und PixelPerInch passt auch. Obwohl das MainForm auf Monitor 2 ist und ich Position auf poMainFormCenter habe.
Mir fehlt die richtige Stelle das ich meine Komponenten einmalig beim initialisieren anpasse und nicht öfter.