如何程序更改屏幕的象素点的颜色位数,如16bits/pixel   32bits/pixel

解决方案 »

  1.   

    有系统API的,我不记得了,不好意思
      

  2.   

    一、如何动态更改屏幕分辨率
      有许多小工具可以在不重新启动Windows的条件下,动态更改屏幕分辨率。你是不是也想自己动手做一个呢?请在interface段中加入下面一句
      function Resolution(X,Y:word):boolean;
      然后在implementation段中写入如下代码:
      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;
      接着,在form中放个button,caption为“800×600”,然后在其OnClick事件中写下
      if Resolution(800,600) then ShowMessage('800×600模式!');
      

  3.   

    看错了,是颜色位数啊!这样:  function Resolution(bits:word):boolean;var
      Form1: TForm1;implementation{$R *.dfm}function Resolution(bits:word):boolean;
    var
      DevMode:TDeviceMode;
    begin
      Result:=EnumDisplaySettings(nil,0,DevMode);
      if Result then
      begin
        DevMode.dmFields:= DM_BITSPERPEL;
        DevMode.dmBitsPerPel := bits;
        Result:= ChangeDisplaySettings(DevMode,0) = DISP_CHANGE_SUCCESSFUL;
      end;
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      if Resolution(32)then
         ShowMessage('success') else
         ShowMessage('failed!');
    end;