Einzelnen Beitrag anzeigen

Michael II

Registriert seit: 1. Dez 2012
Ort: CH BE Eriswil
763 Beiträge
 
Delphi 11 Alexandria
 
#67

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 25. Mär 2019, 19:37
Wenn ich den Code in VCL.Forms und VCL.Controls korrekt lese, dann tritt Activate vor Create auf, wenn WindowState=wsMaximized gesetzt wird, Scaled=TRUE belassen wird, mindestens Windows 6.3 installiert ist und wenn

Winapi.Windows.USER_DEFAULT_SCREEN_DPI <> GetCurrentPPIScreen( )

Bei meinem System:
Winapi.Windows.USER_DEFAULT_SCREEN_DPI 96
GetCurrentPPIScreen( ) 120

=> procedure TCustomForm.ScaleNormalSize(M, D: Integer); wird aufgerufen und damit, weil WindowState = wsMaximized dann irgendwann SetWindowPlacement(Handle, @WindowPlacement); => OnActivate


Falls jemand nach der Änderung (Code unten) (and not ( fsCreating in FFormState)

Delphi-Quellcode:
procedure TCustomForm.ScaleNormalSize(M, D: Integer);
var
  WindowPlacement: TWindowPlacement;
begin
  if ( WindowState = wsMaximized ) and not ( fsCreating in FFormState ) then
  begin

noch Probleme hat, dann suche ich noch einmal .
Michael Gasser
  Mit Zitat antworten Zitat