Содержание материала

 

Ниже приведена процедура, получающая и отображающая в ListBox все возможные видеорежимы.

 

Code:

procedure TForm1.FormCreate(Sender: TObject);

var

i: Integer;

DevMode : TDeviceMode;

begin

i:=0;

while EnumDisplaySettings(nil,i,DevMode) do

begin

   with Devmode do

     ListBox1.Items.Add(Format('%dx%d %d Colors',

     [dmPelsWidth,dmPelsHeight,Int64(1) shl dmBitsperPel]));

   Inc(i);

end;

end;

 

Получение параметров текущего видеорежима

 

Помимо вызова EnumDisplaySettings инфомацию о текущем видеорежиме можно получать и другими способами.Получить количество битов цвета текущего видеорежима можно и другим способом:

  

GetDeviceCaps(Form1.Canvas.Handle, BITSPIXEL) *

GetDeviceCaps(Form1.Canvas.Handle, PLANES)

 

 Получаемые значения при этом:

 

1 = 2 бита на точку

4 = 16 бита на точку

8 = 256 бита на точку

15 = 32768 бита на точку (возвркащает 16 для большинства драйверов экранных устройств)

16 = 65535 бита на точку

24 = 16,777,216 бита на точку

32 = 16,777,216 бита на точку (то же 24)

Непосредственно количество цветов можно так же легко подсчитать:

  

NumberOfColors := (1 shl

(GetDeviceCaps(Form1.Canvas.Handle, BITSPIXEL) *

GetDeviceCaps(Form1.Canvas.Handle, PLANES));

  

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить