キーボードでボタンを押したとき、ボタンをちゃんと沈ませたい
|
BM_SETSTATE メッセージを使うとできます。
コンポーネント化は、ちょっと長くなるので、詳細は [Delphi-ML:19607] を見てください。
以下、スペースキーでの例です。
procedure TForm1.Button1KeyPress(Sender: TObject; var Key: Char);
begin
if Key = #32 then
SendMessage(Button1.Handle,BM_SETSTATE,1,0);
end;
procedure TForm1.Button1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = 32 then
SendMessage(Button1.Handle,BM_SETSTATE,0,0);
end;
コーディングだけで呼ぶ場合は
SendMessage(Button1.Handle,BM_SETSTATE,1,0);
Button1.Click;
Sleep(100); // 適当に好みで決める
PostMessage(Button1.Handle,BM_SETSTATE,0,0);
|
|