|
|
Delphi Tips & Tricks | Tips & Tricks | Bug List | Cool Delphi Sites | Changing Forms according to Screen Resolution When designing forms, it is sometimes helpful to write the code so that the screen and all
of its objects are displayed at the same size no matter what the screen resolution is. Here
is some code to show how that is done: implementation
const
ScreenWidth: LongInt = 800; {I designed my form in 800x600 mode.}
ScreenHeight: LongInt = 600;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
scaled := true;
if (screen.width <> ScreenWidth) then
begin
height := longint(height) * longint(screen.height) DIV ScreenHeight;
width := longint(width) * longint(screen.width) DIV ScreenWidth;
scaleBy(screen.width, ScreenWidth);
end;
end;
Then, you will want to have something that checks to see that the font sizes are OK.
Before you change the font's size, you would need to ensure the object actually has a font
property by checking the RTTI. This can be done as follows: uses typinfo; {Add this to your USES statement.}
var
i: integer;
begin
for i := componentCount - 1 downto 0 do
with components[i] do
begin
if GetPropInfo(ClassInfo, 'font') <> nil then
font.size := (NewFormWidth DIV OldFormWidth) * font.size;
end;
end;
{This is the long way to do the same thing.}
var
i: integer;
p: PPropInfo;
begin
for i := componentCount - 1 downto 0 do
with components[i] do
begin
p := GetPropInfo(ClassInfo, 'font');
if assigned(p) then
font.size := (NewFormWidth DIV OldFormWidth) * font.size;
end;
end;
| Borland Delphi | About the Authors | Home |
Copyright © 1996 Asylum Software Pvt. Ltd. This is an ASPL production. |