Yes - I do exactly that.   I advise you to make it a function that is 
standalone or a library function and call it from wherever you need this 
functionality, as I found I ended up tweaking and refining it quite a lot 
and it became more and more useful.  I would paste the code except it is 
heavily tailored to the environment I setup when a program starts...

I ended with quite a lot of error checking on making sure the scaleby 
amounts were valid, ie not overflowing the screen size, and adjusting some 
component default font sizes, eg for stringgrids.

Email me direct if you want to see some of the code, or a test program I 
write to test the approach - but you are on the right track.

Incidentally you may be better to use

screen.WorkAreaWidth and screen.WorkAreaHeight etc   as this takes out the 
space used by the task bar if applicable.


John Bird

-----Original Message----- 
From: Marshland Engineering
Sent: Sunday, July 15, 2012 8:10 PM
To: [email protected]
Subject: Re: [DUG] Screen resolution

Is there a way to adjust all the visual componets on a form programatically
?

Then I can do something like this.

   rWidScale:=Screen.Width/fmain.Width;
   rHeiScale:=Screen.Height/fmain.Height;

   fMain.Left:=0;                                                      //
Set  the form to full screen
   fMain.Top:=0;
   fMain.Height:=Round(fMain.Height*rHeiScale);
   fMain.Width:=Round(fMain.Width*rWidScale);

   Button1.Top:=Round(Button1.Top*rHeiScale);    //Scale each visual
component
   Button1.Left:=Round(Button1.Left*rWidScale);
   Button1.Height:=Round(Button1.Height*rHeiScale);
   Button1.Width:=Round(Button1.Width*rWidScale);
   Button1.Font.Size:=Round(Button1.Font.Size*rHeiScale);

   DBGrid1.Top:=Round(dbGrid1.Top*rHeiScale);  /// etc
   DBGrid1.Left:=Round(dbGrid1.Left*rWidScale);
   DBGrid1.Height:=Round(dbGrid1.Height*rHeiScale);
   DBGrid1.Width:=Round(dbGrid1.Width*rWidScale);
   DBGrid1.Font.Size:=Round(dbGrid1.Font.Size*rHeiScale);

_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected] with 
Subject: unsubscribe 

_______________________________________________
NZ Borland Developers Group - Delphi mailing list
Post: [email protected]
Admin: http://delphi.org.nz/mailman/listinfo/delphi
Unsubscribe: send an email to [email protected] with 
Subject: unsubscribe

Reply via email to