请问如何得到显示器的分辨率,将其值付给X,Y

解决方案 »

  1.   

    x := screen.width
    y := screen.height;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var x,y:longint;
    begin
      x := Screen.Width;
      y := Screen.Height;
      ShowMessage('显示器水平区域:'+IntToStr(x));
      ShowMessage('显示器垂直区域:'+IntToStr(y));
    end;
    或者
    procedure TForm1.Button2Click(Sender: TObject);
    var x,y:longint;
    begin
      x := GetSystemMetrics(SM_CXSCREEN);
      y := GetSystemMetrics(SM_CYSCREEN);
      ShowMessage('显示器水平区域:'+IntToStr(x));
      ShowMessage('显示器垂直区域:'+IntToStr(y));
    end;
      

  3.   

    www.yesky.com
    您现在的位置是: 软件 > 开发者网络 > 程序方舟 > 开发专栏 > DELPHI开发 > 正文
      

  4.   

    function TForm1.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, CDS_UPDATEREGISTRY) = DISP_CHANGE_SUCCESSFUL;
    改变分辩率。
      

  5.   

    Const
    Orignwidth=800;
    Orignheight=600;procedure TForm1.FormCreate(Sender: TObject);
    var
    devmode:tDevicemode;
    begin
    if screen.width<>orignwidth  then 
    begin
    if  EnumDisplaySettings(nil,0,devmode)  then 
    begin
    devmode.dmfields:=dm_pelswidth  OR  dm_pelsheight ;
    devmode.dmpelswidth:=orignwidth; {宽度}
    devmode.dmpelsheight:=orignheight;{高度}
    ChangeDisplaySettings(devmode,0); {更改设置}
    end;
    end;
    end;