場合によっては画面の表示状態を取得したいときもあると思います。現在の画面解像度がどれくらいあるのか調べるにはTScreenのWidthとHeightを調べます。TScreenはForms ユニットが組み込まれていればDelphiが勝手に作成します。オブジェクトはFormsユニットでグローバル変数として用意されているので、Screen.Width 等とすれば値を取得できます。
現在の画面の色数を取得するにはAPIを叩かなくてはなりません。取得にはGetDeviceCaps関数を使います。第一引数にはGetDC(0)で取得したデバイスコンテキストを指定し、第二引数にBITSPIXELを指定すれば、関数の戻り値として値が返されます。返される値はBit深度ですので、256色の場合は8 、1677万色の場合は24が返されます。
画面の解像度ではなく、デスクトップのサイズを取得する場合はSystemParametersInfoを使用してデスクトップが占める領域を取得してから、サイズを計算する必要があります。
procedure TForm1.ScreenSize1Click(Sender: TObject);
//解像度の取得
begin
Caption := Format('%d x %d', [Screen.Width, Screen.Height]);
end;
procedure TForm1.BitCount1Click(Sender: TObject);
//画面色数の取得
var
DC: HDC;
begin
DC := GetDC(0);
Caption := IntToStr(GetDeviceCaps(DC, BITSPIXEL)) + 'Bit';
ReleaseDC(0, DC);//忘れずに開放!!
end;
procedure TForm1.DesktopSize1Click(Sender: TObject);
//デスクトップのサイズを取得
var
DeskRect: TRect;
begin
SystemParametersInfo(SPI_GETWORKAREA, 0, @DeskRect, 0);
with DeskRect do
Caption := Format('%d x %d', [Right - Left, Bottom - Top]);
end;
|