二、將機器分辨率更改為設計時的分辨率
這種方法不改變表單本身,而是將屏幕分辨率更改為與表單設計時用到的分辨率相同。它需要用到WindowsAPI函數EnumDisplaySettings和ChangeDisplaySettings,前者取當前顯示模式信息,後者則更改顯示設置,具體參數的含義請參見Delphi幫助。設計時寬度常量 和高度常量的定義如方法一。
procedureTForm1.FormCreate(Sender:TObject);
var
devmode:tDevicemode;
begin
ifscreen.width<>orignwidththen
begin
ifEnumDisplaySettings(nil,0,devmode)then
begin
devmode.dmfIElds:=dm_pelswidthORdm_pelsheight;
devmode.dmpelswidth:=orignwidth;{寬度}
devmode.dmpelsheight:=orignheight;{高度}
ChangeDisplaySettings(devmode,0);{更改設置}
end;
end;
end;
以上兩種方法在Windows95+Delphi3.0環境下均已通過,二者相比,前者是主動適應,後者則是被動適應。