Einzelnen Beitrag anzeigen

D6to2007

Registriert seit: 7. Sep 2007
Ort: Hamburg
9 Beiträge
 
Delphi 2007 Professional
 
#1

Form Skalieren/OnResize Problem mit Delphi2007

  Alt 8. Sep 2007, 13:02
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;
  Mit Zitat antworten Zitat