Операцион тизим ва қурилмалар билан ишлаш Компьютер имкониятлари тўғрисидаги тизимли маълумотлар


Download 334 Kb.
bet9/18
Sana08.01.2023
Hajmi334 Kb.
#1084303
1   ...   5   6   7   8   9   10   11   12   ...   18
Bog'liq
Система (таржима)

uses ShellApi;
var
DefWidth, DefHeight, BPP: word;
...


procedure SaveSettings;
var
DC: hDC;
begin
DefWidth := Screen.Width;
DefHeight := Screen.Height;
DC := CreateDC('DISPLAY', nil, nil, nil);
BPP := GetDeviceCaps(DC, BITSPIXEL);
end;

Шундан сўнг ўзингизни параметрларингизни ўрнатишингиз мумкин.





procedure SetScreen(BPP:byte;width,height,FR:integer);
var
D: TDevMode;
h: HWND;
begin
h:=0;
D.dmDeviceName:='DISPLAY';
D.dmBitsPerPel:=BPP;
D.dmDisplayFrequency:=FR;
D.dmPelsWidth:=Width;
D.dmPelsHeight:=Height;
D.dmFields:=DM_BITSPERPEL+DM_PELSWIDTH+DM_PELSHEIGHT+DM_DISPLAYFREQUENCY;
D.dmSize:=SizeOf(D);
if ChangeDisplaySettings(D,CDS_TEST)=DISP_CHANGE_SUCCESSFUL then
ChangeDisplaySettings(D,CDS_UPDATEREGISTRY)
else
MessageBox(h,'This mode is not supported by your video.',
'Failed to change mode', MB_ICONWarning);
end;

Процедура қуйидагича чақирилади:


SetScreen(ранг қуввати, горизонтал бўйича кенглик, вертикали бўйича кенглик, герцдаги частота);
Масалан:

SetScreen(16,800,600,80); {16 бит ранг, 800х600, 80Гц.}



Дастур иши якунлангач, эски параметрларни қайта тиклаш учун ушбу процедурадан фойдаланамиз.



SetScreen(BPP,DefWidth,DefHeight,80);



Юқорида частота 80 берилган. Лекин, частотани олдин сақлаб қўйиш лозим бўлса, унда қуйидаги дастурдан фойдаланиш мумкин.



DefFR:=GetDeviceCaps(DC, VREFRESH);



и восстановить при закрытии программы:


ва дастур иши якунлангач, параметрларни қайта тиклаш қуйидагича.

SetScreen(BPP,DefWidth,DefHeight,DefFR);






Download 334 Kb.

Do'stlaringiz bilan baham:
1   ...   5   6   7   8   9   10   11   12   ...   18




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling