コーディング
最近好んで使っているプログラミングのテクニック。
プログラム起動時にいくつかの場合分けをしたいことがあります。例えば普通に起動すれば Aというフォルダを対象にし、Shiftキーを押しながら起動したら Bというフォルダを対象にする等々。
起動中に今現在押されているキーが取得できればいいので、フォームのクリエイト時に以下のようなコードで判定します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | n := 0; if GetKeyState(VK_CONTROL) < 0 then n := n + 1; if GetKeyState(VK_SHIFT) < 0 then n := n + 2; if GetKeyState(VK_LWIN) < 0 then n := n + 4; if n = 0 then Memo1.Text := ''; if n = 1 then Memo1.Text := 'Ctrl'; if n = 2 then Memo1.Text := 'Shfit'; if n = 3 then Memo1.Text := 'Shift + Ctrl'; if n = 4 then Memo1.Text := 'LWIN'; if n = 5 then Memo1.Text := 'Ctrl + LWIN'; if n = 6 then Memo1.Text := 'Shift + LWIN'; if n = 7 then Memo1.Text := 'Ctrl + Shift + LWIN'; |
上記は [Ctrl] [Shift] [左WIN] キーが押されているかどうかを判断し、押されたキーの分 n へ足し算します。
※ 3キー同時押しまで判定している
すると 0 – 7 までの値が取れるので、8通りの処理に分けることが出来るようになります。覚えておくと必ず重宝する機会が訪れますよ。