如何设置编程时的分辨率??(100分)

  • 主题发起人 主题发起人 hfjacklee
  • 开始时间 开始时间
H

hfjacklee

Unregistered / Unconfirmed
GUEST, unregistred user!
最近我换了17纯平(^_^)把分辨率设置成了1024×768可是在编程时要照顾到客户的需要必须是
800×600。有没有什么办法在编程时可以固定所创建的窗口锁定800×600??而不用来回
切换分辨率(好烦)??
 
有办法,设置高度和宽度后,FORM有个属性是控制大小不可修改的,具体忘了,试验一下
吧,没几个选项
 
这是卷起千堆雪tyn 的答案
function Resolution(X,Y:word):boolean;
var
DevMode:TDeviceMode;
begin
Result:=EnumDisplaySettings(nil,0,DevMode);
if Result then
begin
DevMode.dmFields:=DM_PELSWIDTH Or DM_PELSHEIGHT;
DevMode.dmPelsWidth:=X;
DevMode.dmPelsHeight:=Y;
Result:=ChangeDisplaySettings(DevMode,0)=DISP_CHANGE_SUCCESSFUL;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if Resolution(800,600) then ShowMessage('800×600模式!');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Resolution(1280,1024) then ShowMessage('1280X1024模式!');
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
if Resolution(1024,768) then ShowMessage('1024X768模式!');
end;
//----------这是DragonPC_??? 的答案-----------------
function ChangeResolution(X, Y: word): BOOL;
var lpDevMode: TDeviceMode;
begin
Result := EnumDisplaySettings(nil, 0, lpDevMode);
if Result then begin
lpDevMode.dmFields := DM_PELSWIDTH Or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth := X;
lpDevMode.dmPelsHeight := Y;
Result := ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;
end
end;
{ 示例:if ChangeResolution(640, 480) then
ShowMessage('Now is 640*480'); }

当前分辨率用Screen.width Screen.Height获得。
 
可以在程序中指定分辨率的,你看看以前的贴子,有相关的讨论.
 
后退
顶部