我的程序是在1024*768  下设计的,可是在800*600的情况下有些就不能完全显示了,用什么方式,在应用程序启动时,把桌面的分边率高为1024*768,
关闭系统时,又恢复到800*600 

解决方案 »

  1.   

    在project里,application.run的前面加上如下代码:
    devmode:tdevicemode;
    result:boolean;begin
      if enumdisplaysettings(nil,0,devmode)
        then
          begin
            devmode.dmfields:=dm_pelswidth or dm_pelsheight;
            devmode.dmpelswidth:=1024;
            devmode.dmpelsheight:=768;
            changedisplaysettions(devmode,0);
          end;
    end;然后在主窗体的onclose里同样加上上面的代码,只是将1204和768,改为800和600。
      

  2.   

    changedisplaysettions(devmode,0);有错误错误提示:[Error] MainUnit.PAS(294): Undeclared identifier: 'changedisplaysettions'
      

  3.   

    倒这个是API怎么会找不到!65、动态修改显示器分辨率   
    Windows提供给我们两个API函数,可以动态调整显示器的分辨率,他们是EnumDisplaySettings() 和ChangeDisplaySettings(),
    下面这个例子就是了
    function DynamicResolution(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;procedure TForm1.Button1Click(Sender: TObject);
    begin
    if DynamicResolution(640, 480) then
    ShowMessage('Now is 640*480');
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    if DynamicResolution(800, 600) then
    ShowMessage('Now is 800*600');
    end;  
      

  4.   

    对不起,是我拼错了,应该是ChangeDisplaySettings