I have written a Delphi program that normaly uses forms. I developed it on my computer with 1024x768 resolution. Now that I want to run my program on other computer with higher resolution the forms have to be manually resized to see the whole form layout. My question is how to write a resolution-proof program?
Who is Participating?

[Webinar] Streamline your web hosting managementRegister Today

OpitzSConnect With a Mentor Commented:
Simply set
Form1.Scaled := False;
this should be it.
There is a component out there called TSizer... I think it is freeware, but I am not positive. You can do a search on the Delphi Superpage(, you can make sure to code all your form's characteristics to be dependent on the screen size. for example:

procedure Form1.OnResize(Sender:Tobject);
  Button1.width:=Screen.width /20;


/// not pretty!!

Good luck!!

none of the resizers work very well.  The factor that causes real problems is big fonts versus little fonts.  If you need to run the program at a smaller resolution (i.e. 640x480) instead of the 1024x768 you developed it in, then make sure the size and position of your designed form is appropriate.  You can do some dynamic resizing of your forms based on screen.width and screen.height, but the problem will be resizing the various buttons and edit boxes on your form.  If you have a lot of them, they simply won't fit when you have to reduce the form 50%...

There are some detailed stuff in one of the Borland TI's on this area, and soem of the standard form properties, such as autosize, help or hinder depending on the situation.  Pixels per inch should be treated as a read-0nly property, and is determined by the big fonts versus small fonts selected from the windows display setting tool.  If you design in one pixels per inch environment and display in another, you will have problems.

I wish there were an easy solution, but this is the area where we really could use a killer app.  

Did you try using tpanel and tsplitter? If your form has f.e. a database grid, a navigator and some button, using allign and allclient works perfect for the filled panels.

For the buttons you could use (3th party component?) with autoresizing buttons, but this gets complicated with checkboxes, listboxes, et cetera.

If you have a nice GUI, divide everything first over the panels, then group with groupboxes. Have the panels autoresize by splitters; recalculate the size and position of groupboxes and content in the form.resize event... ...could be some work and refining to get it resizing without *blinking*, but the result can be great.

All Courses

From novice to tech pro — start learning today.