16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"NumLockを制御する"
この発言に対し以下のコメントが寄せられています
#01025 Mr.XRAY さん RE:NumLockを制御する(修正)
,,,
普段は人のコードばかり参考にしているのですが,このSample蔵にまだない
ようですので,掲載させて頂きます.
自作のアプリケーションを職場で,他の方が使用しているのですが,よく
「数値が打てない」
との問い合わせがあります.NumLockのOFFが原因なのです.そこで,NumLock
を常時ONで使用するコードを作成しました.ほとんどの人がテンキーは数値
入力用にしか使っていないので,これでいいのだ.(^_^;)
参考文献は,Delphi Win32 APIリファレンスです.
もしかしたら,NumLockキーを無効にする他の方法があるかも知れません.
uses にWindowsが必要です.
{====================================================================}
{ Formを作成したら強制的にNumLockをONにしてしまう }
{====================================================================}
procedure TForm1.FormCreate(Sender: TObject);
var
{キーボードの状態配列}
KeyState: TKeyboardState;
begin
{キーボードの現在状態を取得}
GetKeyboardState(KeyState);
{NumLockをONにする.0にすればOFF}
KeyState[VK_NUMLOCK]:=1;
{キーボードを新しい状態に設定}
SetKeyboardState(KeyState);
end;
{====================================================================}
{ NumLockを押してもトグルしないで常にNumLockをONにしてしまう }
{====================================================================}
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
{キーボードの状態配列}
KeyState: TKeyboardState;
begin
if Key=VK_NUMLOCK then begin
{キーボードの現在状態を取得}
GetKeyboardState(KeyState);
{NumLockをONにする.0にすればOFF}
KeyState[VK_NUMLOCK]:=1;
{キーボードを新しい状態に設定}
SetKeyboardState(KeyState);
end;
end;
山が好き,花が好き,人が好き Mr.XRAY
HGH03072@nifty.ne.jp
Original document by Mr.XRAY 氏 ID:(HGH03072)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|