Hallo Delphi Spezialisten
Mit D6 funktioniert folgendes problemlos (s.U).
Unter
Delphi 2007 wird OnResize durch Zuweisung von Width, Height oder Aufruf von ScaleBy sofort wieder aufgerufen und das ganze geht nicht mehr.
Ich habe geraume Zeit mit dem Problem verbracht und konnte hierzu nichts finden.
Bin mir auch nicht sicher ob es sich evtl. um einen Bug in D2007 handelt .
hat jemand eine Idee hierzu ?
Delphi-Quellcode:
procedure TMainForm.OnResize(Sender: TObject);
Var h, w : single ;
begin
w := Width / InitWidth ;
h := Height / InitHeight ;
If h > w Then
Width := round(InitWidth * h)
Else
Height := round(InitHeight * w) ;
If (Width div 4) <> Currentscale Then
Begin
ScaleBy ( Width div 4 , CurrentScale );
CurrentScale := Width div 4 ;
end;
end;
procedure TMainForm.FormCreate(Sender: TObject);
begin
inherited;
If Screen.PixelsPerInch <> 96 Then
begin
Width := round ( Width * Screen.PixelsPerInch / 96 );
Height := round ( Height * Screen.PixelsPerInch / 96 );
end ;
InitWidth := Width ;
InitHeight := Height ;
Constraints.MinWidth := Width ;
Constraints.MinHeight := Height ;
Constraints.MaxWidth := Screen.Width;
Constraints.MaxHeight := Screen.Height ;
MinWidth := ( Width * 3 ) div 4 ;
MinHeight := ( Height * 3 ) div 4 ;
CurrentScale := Width div 4 ;
end;