[DUG] Procedure run from main program

Marshland Engineering marshland at marshland.co.nz
Tue Oct 11 17:26:49 NZDT 2016


I'm back on the window page scaling for various forms in my project. This code
works quite well. It needs to reside in the main form.  I can't get the syntax
right to be able to call it from a child form.

Any suggestions? 

procedure FormScale (rHeiScale:real; rWidScale:real; sForm:tForm);
var
   i:integer;
   rWidth,rHeight:real;
begin
   with sForm do begin
      rHeight:=rHeiScale*(Screen.Height/Height);   // Scale form
      rWidth:=rWidScale*(Screen.Width/Width);
      Height:=Round(Height*rHeight);
      Width:=Round(Width*rWidth);
      Left:=Round((Screen.Width-Width)/2);   // Center form
      Top:=Round((Screen.Height-Height)/2);
      for i:=0 to componentcount-1 do
        if Components[i] is TControl then begin
          TControl(Components[i]).Top :=
Round(TControl(Components[i]).Top*rHeight);
          TControl(Components[i]).Width :=
Round(TControl(Components[i]).Width*rWidth);
          TControl(Components[i]).Height :=
Round(TControl(Components[i]).Height*rHeight);
          TControl(Components[i]).Left :=
Round(TControl(Components[i]).Left*rWidth);
       end;
   end;
end;



More information about the Delphi mailing list