procedure SetRes(XRes, YRes: DWord);
var
lpDevMode : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, lpDevMode);
lpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth:=XRes;
lpDevMode.dmPelsHeight:=YRes;
ChangeDisplaySettings(lpDevMode, 0);
end;
******************
设置屏幕颜色深度
procedure Toggle;
var
i : LongInt;
b : LongInt;
DevM : TDEVMODE;
h: HDC;
w: HWND; IsToggled: Boolean;
PreviousBitsPerPixel: Integer;begin
IsToggled := not IsToggled;
w:=GetDesktopWindow;
h:=GetDC(w);
try
if IsToggled then
begin {change to 8 bit}
PreviousBitsPerPixel := GetDeviceCaps(h, BITSPIXEL);
i := -1;
Repeat
Inc(i);
Until EnumDisplaySettings(pchar(0), i, DevM) = False;
DevM.dmFields := DM_BITSPERPEL;
DevM.dmBitsPerPel := 8;
b := ChangeDisplaySettings(DevM, 0);
if ((GetDeviceCaps(h, RASTERCAPS) and RC_PALETTE) = 0) or
(b <> DISP_CHANGE_SUCCESSFUL) then
begin
showmessage('can''t use palettes');
IsToggled := False;
end
end else {Change mform to palette values and perform desired 8 bit display}
else begin {change back value}
i := -1;
Repeat
Inc(i);
Until EnumDisplaySettings(pchar(0), i, DevM) = False;
DevM.dmFields := DM_BITSPERPEL;
DevM.dmBitsPerPel := PreviousBitsPerPixel;
b := ChangeDisplaySettings(DevM, 0);
if b <> DISP_CHANGE_SUCCESSFUL then showmessage( 'Error restoring origional display');
end;
finally
ReleaseDC(w,h);
end;
end;
var
lpDevMode : TDeviceMode;
begin
EnumDisplaySettings(nil, 0, lpDevMode);
lpDevMode.dmFields:=DM_PELSWIDTH or DM_PELSHEIGHT;
lpDevMode.dmPelsWidth:=XRes;
lpDevMode.dmPelsHeight:=YRes;
ChangeDisplaySettings(lpDevMode, 0);
end;
******************
设置屏幕颜色深度
procedure Toggle;
var
i : LongInt;
b : LongInt;
DevM : TDEVMODE;
h: HDC;
w: HWND; IsToggled: Boolean;
PreviousBitsPerPixel: Integer;begin
IsToggled := not IsToggled;
w:=GetDesktopWindow;
h:=GetDC(w);
try
if IsToggled then
begin {change to 8 bit}
PreviousBitsPerPixel := GetDeviceCaps(h, BITSPIXEL);
i := -1;
Repeat
Inc(i);
Until EnumDisplaySettings(pchar(0), i, DevM) = False;
DevM.dmFields := DM_BITSPERPEL;
DevM.dmBitsPerPel := 8;
b := ChangeDisplaySettings(DevM, 0);
if ((GetDeviceCaps(h, RASTERCAPS) and RC_PALETTE) = 0) or
(b <> DISP_CHANGE_SUCCESSFUL) then
begin
showmessage('can''t use palettes');
IsToggled := False;
end
end else {Change mform to palette values and perform desired 8 bit display}
else begin {change back value}
i := -1;
Repeat
Inc(i);
Until EnumDisplaySettings(pchar(0), i, DevM) = False;
DevM.dmFields := DM_BITSPERPEL;
DevM.dmBitsPerPel := PreviousBitsPerPixel;
b := ChangeDisplaySettings(DevM, 0);
if b <> DISP_CHANGE_SUCCESSFUL then showmessage( 'Error restoring origional display');
end;
finally
ReleaseDC(w,h);
end;
end;
解决方案 »
- 有没有这样的控件或这样的功能如何实现?
- 请问把程序改成服务后,为什么不能执行?用到webbrowser
- sendmessage问题
- fastreport如何控制每页显示的主项数据行数?能不能对每页合计?
- 在DELPHI中用建表时出错,程序会出中止.什么办法可以避免程序中止??
- 大家快来帮帮我啊,关于dbgrid的datesource的!急!
- 有哪位知道inherited?急,急,急!
- 关于ADOConnection1.BeginTrans的问题!请指教。
- ASP中如果要使button1.value='xxx'可以让i=1 & button<%=i%>.value='xxx'Delphi中有没有类似的用法?可以举个例子吗?
- 解惑!!!
- 浮点数的问题
- 怎样建索引才合理?
我知道可以通过修改Gamma值来修改亮度,好像要驱动程序支持。