RT

解决方案 »

  1.   

    动态调整显示器分辨率  Delphi提供了可以动态改变屏幕分辨率的函数,分别是EnumDisplaySettings()和ChangeDisplaySettings()。有了它们,编程时可以随时改变分辨率以适应要求。下面的CRTReset函数能方便实现这一功能:  implementation  function CRTReset(X, Y: Word): Boolean;  var   lpDevMode: TDeviceMode;  begin   Result:= EnumDisplaySettings(nil, 0, lpDevMode); //获取显示模式   if Result then begin  lpDevMode.dmFields := DM_PELSWID  TH 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 CRTReset(800, 600) then ShowMessage('Now is 800*600'); //调用函数,设置分辨率为800×600  end;
      

  2.   

    // 动态设置分辨率function DynamicResolution(x, y: WORD): Boolean;
    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;