Delphi Programming / Object Pascal
[掲載 2010年07月07日] [更新 2010年07月07日] Delphi サンプルプログラム集 |
SystemParametersInfo 関数サンプル
サンプルで使用している構造体 |
動作確認等 |
各ページに動作確認環境を記載
このページの構造体 (レコード型) の定義は Delphi 2010 用 |
SystemParametersInfo 関数のサンプルで使用している構造体 |
SystemParametersInfo 関数のサンプルで使用している各種構造体 (レコード体) の説明です.この内容は Delphi 2010 の Windows.pas 内で定義されているものです.これらの構造体については,一部を除いて,MSDN オンラインの Accessibility Structures のページに説明があります. |
PAccessTimeout = ^TAccessTimeout;
tagACCESSTIMEOUT = packed record
cbSize: UINT;
dwFlags: DWORD;
iTimeOutMSec: DWORD;
end;
TAccessTimeout = tagACCESSTIMEOUT;
ACCESSTIMEOUT = tagACCESSTIMEOUT;
cbSize |
構造体のバイト数 |
dwFlags |
動作方法を指定する定数.下表参照 |
iTimeOutMSec |
タイムアウト時間 (ミリ秒) |
ATF_TIMEOUTON |
タイムアウトの設定を有効にする |
ATF_ONOFFFEEDBACK |
タイムアウト時に警告音を出す |
PFilterKeys = ^TFilterKeys;
tagFILTERKEYS = packed record
cbSize: UINT;
dwFlags: DWORD;
iWaitMSec: DWORD; { Acceptance Delay}
iDelayMSec: DWORD; { Delay Until Repeat}
iRepeatMSec: DWORD; { Repeat Rate}
iBounceMSec: DWORD; { Debounce Time}
end;
TFilterKeys = tagFILTERKEYS;
FILTERKEYS = tagFILTERKEYS;
cbSize |
構造体のバイト数 |
dwFlags |
動作方法を指定する定数.下表参照 |
iWaitMSec |
システムが認識するまでユーザがお押し続ける時間 (ミリ秒) |
iDelayMSec |
リピートを開始するまでユーザが押し続ける時間 (ミリ秒) |
iRepeatMSec |
タイムアウト時間 (ミリ秒) |
iBounceMSec |
キーアップ後,同じキーを押した時システムが次のキーと認識できるまでの時間 (ミリ秒) |
FKF_FILTERKEYSON |
フィルタキー機能が有効 |
FKF_AVAILABLE |
フィルタキー機能が使用可能 |
FKF_HOTKEYACTIVE |
[Shift]キーを8秒間押し続けるとフィルタキーのオン・オフが切り替え可能 |
FKF_CONFIRMHOTKEY |
ホットキーを使ってフィルタキーが有効になる前に確認のダイアログボックスを表示する |
FKF_HOTKEYSOUND |
フィルタキーをオン・オフしたとき,音で知らせる |
FKF_INDICATOR |
フィルタキーがオンになったときインディケータを表示する |
FKF_CLICKON |
システムがクリックを認識したとき,音で知らせる |
PHighContrastA = ^THighContrastA;
PHighContrastW = ^THighContrastW;
PHighContrast = PHighContrastW;
tagHIGHCONTRASTA = record
cbSize: UINT;
dwFlags: DWORD;
lpszDefaultScheme: PAnsiChar;
end;
tagHIGHCONTRASTW = record
cbSize: UINT;
dwFlags: DWORD;
lpszDefaultScheme: PWideChar;
end;
tagHIGHCONTRAST = tagHIGHCONTRASTW;
THighContrastA = tagHIGHCONTRASTA;
THighContrastW = tagHIGHCONTRASTW;
THighContrast = THighContrastW;
HIGHCONTRASTA = tagHIGHCONTRASTA;
HIGHCONTRASTW = tagHIGHCONTRASTW;
HIGHCONTRAST = HIGHCONTRASTW;
cbSize |
構造体のバイト数 |
dwFlags |
動作方法を指定する定数.下表参照 |
lpszDefaultScheme |
デフォルトのカラースキーマ |
HCF_HIGHCONTRASTON |
ハイコントラストモードがオンになっている |
HCF_AVAILABLE |
ハイコントラストモードが使用可能である |
HCF_HOTKEYACTIVE |
[Alt] + [Shift] + [PrintScreen] でハイコントラストモードをオン・オフにできる |
HCF_CONFIRMHOTKEY |
ハイコントラストモードがオンになったとき確認のためのダイアログボックスを表示する |
HCF_HOTKEYSOUND |
ハイコントラストモードをオン・オフしたとき音で知らせる |
HCF_INDICATOR |
ハイコントラストモードがオンになったときインディケータを表示する |
HCF_HOTKEYAVAILABLE |
ハイコントラストモードを切り替えるホットキーが使える |
PMouseKeys = ^TMouseKeys;
tagMOUSEKEYS = packed record
cbSize: UINT;
dwFlags: DWORD;
iMaxSpeed: DWORD;
iTimeToMaxSpeed: DWORD;
iCtrlSpeed: DWORD;
dwReserved1: DWORD;
dwReserved2: DWORD;
end;
TMouseKeys = tagMOUSEKEYS;
MOUSEKEYS = tagMOUSEKEYS;
cbSize |
構造体のバイト数 |
dwFlags |
動作方法を指定する定数.下表参照 |
iMaxSpeed |
矢印キーを押した時のカーソルの最大移動速度
10 から 360 の値 |
iTimeToMaxSspeed |
同上,最大速度に達するまでの時間 (1,000 ~ 5,000 ミリ秒) |
iCtrlSpeed |
[Ctrl] を押した時の移動増加率.値の範囲不明
MKF_MODIFIERS フラグが有効の場合のみ有効 |
dwReserved1 |
常に 0 |
dwReserved2 |
常に 0 |
MKF_MOUSEKEYSON |
マウスキーがオンになっている |
MKF_AVAILABLE |
マウスキーが使用可能である. |
MKF_HOTKEYACTIVE |
[Alt] + [Shift] + [NumLock] でマウスキーのオン・オフを切り替え可能 |
MKF_CONFIRMHOTKEY |
ホットキーを使ってマウスキーをオン・オフしたとき確認のダイアログボックスを表示する |
MKF_HOTKEYSOUND |
ホットキーを使ってマウスキーがオン・オフしたとき音で知らせる |
MKF_INDICATOR |
マウスキーがオンになったときインディケータを表示する |
MKF_MODIFIERS |
[Ctrl] を押すと iCtrlSpeed で指定された比率だけカーソルの速度を上げる.[Shift] を押すとカーソルの移動を遅くする |
MKF_REPLACENUMBERS |
[NumLock] がオンのときのみマウスキーをオンにする |
PSoundsEntryA = ^TSoundsEntryA;
PSoundsEntryW = ^TSoundsEntryW;
PSoundsEntry = PSoundsEntryW;
tagSOUNDSENTRYA = record
cbSize: UINT;
dwFlags: DWORD;
iFSTextEffect: DWORD;
iFSTextEffectMSec: DWORD;
iFSTextEffectColorBits: DWORD;
iFSGrafEffect: DWORD;
iFSGrafEffectMSec: DWORD;
iFSGrafEffectColor: DWORD;
iWindowsEffect: DWORD;
iWindowsEffectMSec: DWORD;
lpszWindowsEffectDLL: PAnsiChar;
iWindowsEffectOrdinal: DWORD;
end;
tagSOUNDSENTRYW = record
cbSize: UINT;
dwFlags: DWORD;
iFSTextEffect: DWORD;
iFSTextEffectMSec: DWORD;
iFSTextEffectColorBits: DWORD;
iFSGrafEffect: DWORD;
iFSGrafEffectMSec: DWORD;
iFSGrafEffectColor: DWORD;
iWindowsEffect: DWORD;
iWindowsEffectMSec: DWORD;
lpszWindowsEffectDLL: PWideChar;
iWindowsEffectOrdinal: DWORD;
end;
tagSOUNDSENTRY = tagSOUNDSENTRYW;
TSoundsEntryA = tagSOUNDSENTRYA;
TSoundsEntryW = tagSOUNDSENTRYW;
TSoundsEntry = TSoundsEntryW;
SOUNDSENTRYA = tagSOUNDSENTRYA;
SOUNDSENTRYW = tagSOUNDSENTRYW;
SOUNDSENTRY = SOUNDSENTRYW;
cbSize |
構造体のバイト数 |
dwFlags |
サウンド機能のプロパティを示す定数.下表参照 |
iFSTextEffect |
Windows 95/98 のみ.Window NT/2000 では 0 |
iFSTextEffectMSec |
Windows 95/98 のみ.Window NT/2000 では 0 |
iFSTextEffectColorBits |
Windows 95/98 のみ.Window NT/2000 では 0 |
iFSGrafEffect |
Windows 95/98 のみ.Windows NT/2000 では 0 |
iFSGrafEffectMSec |
Windows 95/98 のみ.Window NT/2000 では 0 |
iFSGrafEffectColor |
Windows 95/98 のみ.Windows NT/2000 では 0 |
iWindowsEffect |
音を発生するアプリケーションの場合のディスプレイへのビジュアル表示.下表のいずれか1つ |
iWindowsEffectMSec |
Windows 95/98 のみ.Window NT/2000 では 0 |
lpszWindowsEffectDLL |
常に nil |
iWindowsEffectOrdinal |
常に 0 |
SSF_SOUNDSENTRYON |
サウンド機能がオン |
SSF_AVAILABLE |
サウンド機能が使用可能である |
SSWF_NONE |
ビジュアル効果なし |
SSWF_TITLE |
アクティブウィンドウのキャプションバーを点滅 |
SSWF_WINDOW |
アクティブウィンドウを点滅 |
SSWF_DISPLAY |
ディスプレイ全体を点滅 |
PStickyKeys = ^TStickyKeys;
tagSTICKYKEYS = packed record
cbSize: UINT;
dwFlags: DWORD;
end;
TStickyKeys = tagSTICKYKEYS;
STICKYKEYS = tagSTICKYKEYS;
cbSize |
構造体のバイト数 |
dwFlags |
スティックキーのプロパティを指定する定数.下表参照 |
SKF_STICKYKEYSON |
スティックキー機能が有効 |
SKF_AVAILABLE |
スティックキー機能が使用可能である |
SKF_HOTKEYACTIVE |
ホットキーによってスティックキーのオン・オフを切り替え可能 |
SKF_CONFIRMHOTKEY |
ホットキーを使ってスティックキーをオン・オフしたとき確認のダイアログボックスを表示する |
SKF_HOTKEYSOUND |
ホットキーを使ってスティックキーをオン・オフしたとき音で知らせる |
SKF_INDICATOR |
スティックキーがオンになったときインディケータを表示する |
SKF_AUDIBLEFEEDBACK |
スティックキー機能を使って [Shift], [Ctrl], [Alt] を押したとき、音で知らせる |
SKF_TRISTATE |
[Shift], [Ctrl], [Alt] を 2 回押したとき,押し続けていると見なす 3 回目を押したとき,その設定を解除する |
SKF_TWOKEYSOFF |
別のキーと同時に押している [Shift], [Ctrl], [Alt] をアップしたとき、スティックキーをオフにする |
PToggleKeys = ^TToggleKeys;
tagTOGGLEKEYS = packed record
cbSize: UINT;
dwFlags: DWORD;
end;
TToggleKeys = tagTOGGLEKEYS;
TOGGLEKEYS = tagTOGGLEKEYS;
cbSize |
構造体のバイト数 |
dwFlags |
動作方法を指定する定数.下表参照 |
TKF_TOGGLEKEYSON |
トグルキー機能が有効 |
TKF_AVAILABLE |
トグルキー機能が使用可能である |
TKF_HOTKEYACTIVE |
ホットキーによってトグルキーのオン・オフを切り替え可能 |
TKF_CONFIRMHOTKEY |
ホットキーを使ってトグルキーをオン・オフしたとき確認のダイアログボックスを表示する |
TKF_HOTKEYSOUND |
ホットキーを使ってトグルキーをオン・オフしたとき音で知らせる |
PIconMetricsA = ^TIconMetricsA;
PIconMetricsW = ^TIconMetricsW;
PIconMetrics = PIconMetricsW;
tagICONMETRICSA = record
cbSize: UINT;
iHorzSpacing: Integer;
iVertSpacing: Integer;
iTitleWrap: Integer;
lfFont: TLogFontA;
end;
tagICONMETRICSW = record
cbSize: UINT;
iHorzSpacing: Integer;
iVertSpacing: Integer;
iTitleWrap: Integer;
lfFont: TLogFontW;
end;
tagICONMETRICS = tagICONMETRICSW;
TIconMetricsA = tagICONMETRICSA;
TIconMetricsW = tagICONMETRICSW;
TIconMetrics = TIconMetricsW;
ICONMETRICSA = tagICONMETRICSA;
ICONMETRICSW = tagICONMETRICSW;
ICONMETRICS = ICONMETRICSW;
cbSize |
構造体のバイト数 |
iHorzSpacing |
水平方向の間隔 |
iVertSpacing |
垂直方向の間隔 |
iTitleWrap |
0のときはキャプションを折り返さない |
lfFont |
キャプションのフォントを指定する LOGFONT 構造体 |
PAnimationInfo = ^TAnimationInfo;
tagANIMATIONINFO = packed record
cbSize: UINT;
iMinAnimate: Integer;
end;
TAnimationInfo = tagANIMATIONINFO;
ANIMATIONINFO = tagANIMATIONINFO;
cbSize |
構造体のバイト数 |
iMinAnimate |
アニメーション効果が有効なとき 0 以外の値 |
PMinimizedMetrics = ^TMinimizedMetrics;
tagMINIMIZEDMETRICS = packed record
cbSize: UINT;
iWidth: Integer;
iHorzGap: Integer;
iVertGap: Integer;
iArrange: Integer;
end;
TMinimizedMetrics = tagMINIMIZEDMETRICS;
MINIMIZEDMETRICS = tagMINIMIZEDMETRICS;
cbSize |
構造体のバイト数 |
iWidth |
アイコン化されたウィンドウの幅 |
iHorzGap |
アイコン化されたウィンドウの水平間隔 |
iVertGap |
アイコン化されたウィンドウの垂直間隔 |
iArrange |
方向を指定する定数の組み合わせ.下表参照 |
iArrangeの定数と方向(上4つのいずれかと,下のいずれかの組合わせ.またはARW_HIDE単独指定 |
ARW_BOTTOMLEFT |
左下から |
ARW_BOTTOMRIGHT |
右下から |
ARW_TOPLEFT |
左上から |
ARW_TOPRIGHT |
右上から |
ARW_LEFT |
左方向へ
(ARW_BOTTOMRIGHT,A RW_TOPRIGHT 指定のとき有効) |
ARW_RIGHT |
右方向へ
(ARW_BOTTOMLEFT, ARW_TOPLEFT 指定のとき有効) |
ARW_UP |
上方向へ
(ARW_BOTTOMRIGHT, ARW_BOTTOMLEFT 指定のとき有効) |
ARW_DOWN |
下方向へ
(ARW_TOPRIGHT, ARW_TOPLEFT 指定のとき有効) |
ARW_HIDE |
画面領域外に移動して最小化 |
この構造体 (レコード型) の定義は,Delphi 2007 以降とそれより前のバージョンで違います.
Delphi 2007 よりも前のバージョンでは,構造体のサイズの設定は,cbSize は SizeOf で,Delphi 2007 以降では,クラスファンクション (class function) の SizeOf を使用します.これを使用しないとサイズの取得に失敗します. |
PNonClientMetricsA = ^TNonClientMetricsA;
PNonClientMetricsW = ^TNonClientMetricsW;
PNonClientMetrics = PNonClientMetricsW;
tagNONCLIENTMETRICSA = record
cbSize: UINT;
iBorderWidth: Integer;
iScrollWidth: Integer;
iScrollHeight: Integer;
iCaptionWidth: Integer;
iCaptionHeight: Integer;
lfCaptionFont: TLogFontA;
iSmCaptionWidth: Integer;
iSmCaptionHeight: Integer;
lfSmCaptionFont: TLogFontA;
iMenuWidth: Integer;
iMenuHeight: Integer;
lfMenuFont: TLogFontA;
lfStatusFont: TLogFontA;
lfMessageFont: TLogFontA;
iPaddedBorderWidth: Integer; // Requires Windows Vista or later
class function SizeOf: Integer; static;
end;
tagNONCLIENTMETRICSW = record
cbSize: UINT;
iBorderWidth: Integer;
iScrollWidth: Integer;
iScrollHeight: Integer;
iCaptionWidth: Integer;
iCaptionHeight: Integer;
lfCaptionFont: TLogFontW;
iSmCaptionWidth: Integer;
iSmCaptionHeight: Integer;
lfSmCaptionFont: TLogFontW;
iMenuWidth: Integer;
iMenuHeight: Integer;
lfMenuFont: TLogFontW;
lfStatusFont: TLogFontW;
lfMessageFont: TLogFontW;
iPaddedBorderWidth: Integer; // Requires Windows Vista or later
class function SizeOf: Integer; static;
end;
tagNONCLIENTMETRICS = tagNONCLIENTMETRICSW;
TNonClientMetricsA = tagNONCLIENTMETRICSA;
TNonClientMetricsW = tagNONCLIENTMETRICSW;
TNonClientMetrics = TNonClientMetricsW;
NONCLIENTMETRICSA = tagNONCLIENTMETRICSA;
NONCLIENTMETRICSW = tagNONCLIENTMETRICSW;
NONCLIENTMETRICS = NONCLIENTMETRICSW;
cbSize |
構造体のバイト数 |
iBoaderWidth |
境界線の幅 |
iScrollHeight |
垂直スクロールバーの幅 |
iScrollWidth |
水平スクロールバーの幅 |
iCaptionWidth |
タイトルバーの幅 |
iCaptionHeight |
タイトルバーの高さ |
lfCaptionFont |
タイトルバーのフォント (LOGFONT 構造体) |
iSMCaptionWidth |
小さいタイトルバーの幅 |
iSMCaptionHeight |
小さいタイトルバーの高さ |
lfSMCaptionFont |
小さいタイトルバーのフォント (LOGFONT 構造体) |
iMenuWidth |
メニューバーの幅 |
iMenuHeight |
メニューバーの高さ |
lfMenuFont |
メニューバーのフォント (LOGFONT 構造体) |
lfStatusFont |
ステータスバーのフォント (LOGFONT 構造体) |
lfMessageFont |
メッセージのフォント (LOGFONT 構造体) |
PLogFontA = ^TLogFontA;
PLogFontW = ^TLogFontW;
PLogFont = PLogFontW;
tagLOGFONTA = record
lfHeight: Longint;
lfWidth: Longint;
lfEscapement: Longint;
lfOrientation: Longint;
lfWeight: Longint;
lfItalic: Byte;
lfUnderline: Byte;
lfStrikeOut: Byte;
lfCharSet: Byte;
lfOutPrecision: Byte;
lfClipPrecision: Byte;
lfQuality: Byte;
lfPitchAndFamily: Byte;
lfFaceName: array[0..LF_FACESIZE - 1] of AnsiChar;
end;
tagLOGFONTW = record
lfHeight: Longint;
lfWidth: Longint;
lfEscapement: Longint;
lfOrientation: Longint;
lfWeight: Longint;
lfItalic: Byte;
lfUnderline: Byte;
lfStrikeOut: Byte;
lfCharSet: Byte;
lfOutPrecision: Byte;
lfClipPrecision: Byte;
lfQuality: Byte;
lfPitchAndFamily: Byte;
lfFaceName: array[0..LF_FACESIZE - 1] of WideChar;
end;
tagLOGFONT = tagLOGFONTW;
TLogFontA = tagLOGFONTA;
TLogFontW = tagLOGFONTW;
TLogFont = TLogFontW;
LOGFONTA = tagLOGFONTA;
LOGFONTW = tagLOGFONTW;
LOGFONT = LOGFONTW;
lfHeight |
文字の論理高さ
1 以上の時は,デバイス単位に変換して使用可能なフォントのセル高さに一致させる
0の時,使用可能なフォントのデフォルトの高さを使う
0 未満の時,絶対値を使う以外は 1 以上のときと同じ |
lfWidth |
文字の論理幅
0 のときは標準幅 |
lfEscapement |
回転角度 (1/10 度単位).lfOrientation と同じ値にする
角度は文字列全体のベースラインとX軸との角度 |
lfOrientation |
回転角度 (1/10 度単位).lfEscpement と同じ値にする |
lfWeight |
文字の線幅の定数数
0 のときはデフォルト値
100,200,300,... 大きくなる程太くなる |
lfItalic |
イタリック体のとき 1 |
lfUnderline |
アンダーライン付きのとき 1 |
lfStrikeOut |
横線付きのとき 1 |
lfCharSet |
文字セットの定数 (SHIFTJIS_CHARSET 等) |
lfOutPrecision |
フォントの特性を一致させる方法を指定する定数
デフォルトは0 |
lfClipPrecision |
文字の一部がクリッピング領域外にあるときの処理方法
通常0 |
lfQualiy |
通常0 |
lfPitchAndFamily |
下位2ビットにフォントのピッチ
上位4ビットにフォントファミリ
DEFAULT_PITCH (= 0) はデフォルトのピッチ
FIXED_PITCH (=1) は固定ピッチ
VARIABLE_PITCH (=2) は可変ピッチ |
lfFaceName |
タイプフェース名 |
|