[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