• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 230
  • Last Modified:

Form Sizing

I have created forms under the 800x600 resolution. I am looking for a way to resize my forms so they will be in prportion when the user changes the screen resolution within Windows.

Example: If the user changes to the 640x480 resolution my compents on the form will not be displayed unless the user scrolls to the correct location. Is there a easy way to do this, or do I need to perform caculations when the forms are fisrt created on startup of the application?
  • 2
1 Solution
It is always (!!) prudent to size your forms to accomodate the lowest common screen resolution.  In this case I would suggest you redo you forms before hand and let the user enjoy the extra screen space if they move from 640x480 to 800x600.

Manually recalculating your screen layouts (what you indicated you wanted to do) would make a lot of work for you and the results would be undesirable.
I would disagree.  You shouldn't limit your app to the lowest
common denominator if your user isn't saddled with such.

Sure, make sure your program will look fine at 640x480,
but make sure that it looks great at 1280x1024 too (which
is the resolution I always use).

I rmember VB would allow you to scale component postions by
percentage...therefore all components would appear in the
same position within the form (relatively) no matter the

Perhaps the same can be achived with Delphi using the PixelsPerInch, Scaled, and ScaleBy properties.  There's not much help on them and I've never used them.

What you want to do will require a lot of additional work, but I think it is work well worth the effort for yur end-users.  Imagine if a program like Visio only appeared on your screen at a resolution of 640x480??

Perhaps add some time-saving controls (toolbars) to an enlarged form...don't add extra-functionality..but perhaps add some added convenience.
My experience with this type of problem is what lead me to the answer I gave you.  The problem is that those 'scale by' setttings in VB (and Delphi?) yield rather wonky interfaces that end up being hell to test and even worse to write documentation for.

If you are looking to add convenience for your users with extra buttons and such why not a 'wizard' type for that communicates with your other forms (and changes its appearance based on which form has focus?).

Incidentally, my answer to your original question is the stock answer you will get from any book on interface design.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Upgrade your Question Security!

Your question, your audience. Choose who sees your identity—and your question—with question security.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now