怎样不用鼠标,使SpeedButtom出现一次单击效果?(100分)

  • 主题发起人 主题发起人 大白菜
  • 开始时间 开始时间

大白菜

Unregistered / Unconfirmed
GUEST, unregistred user!
例如在单击键盘上某个键时,Form上的SpeedButton相应地出现
按下的效果,最好不要用画或者改变Graphy的方法。
 
先设置SpeedButton和Form的属性如下:
SpeedButton1.AllowAllUp := True;
SpeedButton1.GroupIndex := 1;
Form1.KeyPreview := True;

在Form1的OnKeyDown里:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = VK_ESCAPE then SpeedButton1.Down := not SpeedButton1.Down;
end;

 
设置SpeedButton.AllowAllUp := True;
SpeedButton.GroupIndex := 1;

那么,产生单击效果的程序如下:
SpeedButton1.Down := True;
Application.ProcessMessages;
Sleep(100);
SpeedButton1.Down := False;
 
Good!
但最好在KeyUp属性里再来一下
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If key=vk_Space then SpeedButton1.Down:=not SpeedButton1.Down;
end;
就完全实现了单击键盘是相应的SpeedButton按下效果。
 
接受答案了.
 
后退
顶部