Resolution

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?
MalensekAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

DrDelphiCommented:
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( http://delphi.icm.edu.pl/)...Otherwise, 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);
begin
  Button1.width:=Screen.width /20;
  Button1.height:=Screen.height/30;
  etc,
  etc,
  etc,

end;


/// not pretty!!


Good luck!!


 
0
synatureCommented:
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.  

Brandon
0
florisbCommented:
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.

Floris.
0
OpitzSCommented:
Simply set
Form1.Scaled := False;
this should be it.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Delphi

From novice to tech pro — start learning today.