const
EDD_GET_DEVICE_INTERFACE_NAME =
1
;
ENUM_REGISTRY_SETTINGS = DWORD(-
2
);
procedure
TForm1
.
Button1Click(Sender: TObject);
var
Display: TDisplayDevice;
DevMode: TDevMode;
begin
Display
.
cb := SizeOf( TDisplayDevice );
EnumDisplayDevices(
nil
,
1
,
Display, EDD_GET_DEVICE_INTERFACE_NAME );
ZeroMemory( @DevMode, SizeOf( TDevMode ) );
DevMode
.
dmSize := SizeOf( TDevMode );
DevMode
.
dmBitsPerPel :=
32
;
DevMode
.
dmFields := DM_BITSPERPEL
or
DM_PELSWIDTH
or
DM_PELSHEIGHT
or
DM_DISPLAYFREQUENCY
or
DM_DISPLAYFLAGS
or
DM_POSITION;
ChangeDisplaySettingsEx(
PChar
( @Display
.
DeviceName[
0
] ), DevMode,
0
,
CDS_UPDATEREGISTRY
or
CDS_NORESET,
nil
);
ChangeDisplaySettingsEx(
nil
, PDevMode(
nil
)^,
0
,
0
,
nil
);
end
;
procedure
TForm1
.
Button2Click(Sender: TObject);
var
Display: TDisplayDevice;
DevMode: TDevMode;
begin
Display
.
cb := SizeOf( TDisplayDevice );
EnumDisplayDevices(
nil
,
1
,
Display, EDD_GET_DEVICE_INTERFACE_NAME );
EnumDisplaySettings(
PChar
( @Display
.
DeviceName[
0
] ),
ENUM_REGISTRY_SETTINGS, DevMode );
DevMode
.
dmFields := DM_BITSPERPEL
or
DM_PELSWIDTH
or
DM_PELSHEIGHT
or
DM_DISPLAYFREQUENCY
or
DM_DISPLAYFLAGS
or
DM_POSITION;
ChangeDisplaySettingsEx(
PChar
( @Display
.
DeviceName[
0
] ), DevMode,
0
,
CDS_UPDATEREGISTRY
or
CDS_NORESET,
nil
);
ChangeDisplaySettingsEx(
nil
, PDevMode(
nil
)^,
0
,
0
,
nil
);
end
;