Einzelnen Beitrag anzeigen

DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#68

AW: 10.3.1: OnActivate wird vor OnCreate ausgeführt

  Alt 25. Mär 2019, 19:42
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 .
Habe es noch nicht getestet und wird schwer bei mir, weil ich den Fehler auch vorher nie hatte.
Aber einfach and not ( fsCreating in FFormState in der offiziellen Emba-Unit in TCustomForm.ScaleNormalSize einfügen und damit sollte es gut sein? Darf ich das als CE_Nutzer überhaupt?
  Mit Zitat antworten Zitat