Ce code permet de lire et de modifier la résolution de l'écran. Il envoie un message (SendMessage) aux autres fenêtres, ce qui permet entre autres d'avoir une barre des tâches convenablement redimensionnée et déplacée.
Source / Exemple :
unit mdlChangeRes;
interface
uses Windows;
function GetResX():integer;
function GetResY():integer;
function GetNbCoul():integer;
function SetRes(const ResX,ResY,NbCoul:integer):integer;
implementation
function GetResX():integer;
var
DM:_devicemodeA;
begin
EnumDisplaySettings('',uint(-1),DM);
Result:=DM.dmPelsWidth;
end;
function GetResY():integer;
var
DM:_devicemodeA;
begin
EnumDisplaySettings('',uint(-1),DM);
Result:=DM.dmPelsHeight;
end;
function GetNbCoul():integer;
var
DM:_devicemodeA;
begin
EnumDisplaySettings('',uint(-1),DM);
Result:=DM.dmBitsPerPel;
end;
function SetRes(const ResX,ResY,NbCoul:integer):integer;
var
DM:_devicemodeA;
begin
EnumDisplaySettings('',uint(-1),DM);
DM.dmFields:=0;
if (ResX<>DM.dmPelsWidth) then DM.dmFields:=DM_PELSWIDTH;
if (ResY<>DM.dmPelsHeight) then DM.dmFields:=(DM.dmFields or DM_PELSHEIGHT);
if (NbCoul<>DM.dmBitsPerPel) then DM.dmFields:=(DM.dmFields or DM_BITSPERPEL);
if (DM.dmFields<>0) then begin
DM.dmPelsWidth:=ResX;
DM.dmPelsHeight:=ResY;
DM.dmBitsPerPel:=NbCoul;
if (ChangeDisplaySettings(DM,CDS_UPDATEREGISTRY)=DISP_CHANGE_SUCCESSFUL) then begin
SendMessage($FFFF,$1B,0,0);
SendMessage($FFFF,$7E,NbCoul,(ResX + $10000 * ResY));
Result:=0;
end else Result:=1;
end;
end;
end.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.