【delphi】问一个简单的delphi编程问题

来源:百度知道 编辑:UC知道 时间:2024/05/27 18:21:21
delphi的checkbox一般是通过鼠标打勾的,单击一下选上,再单击一下有变为不选;
现我想通过键盘(鼠标的功能不能取消)也可以实现这个功能,比如按数字键盘的“+”号一下就选上,再按一下又去掉那个勾。。。

★ 我要具体的代码,提供最佳答案的追加分数。。。

先激活checkbox1的事件OnKeyUp,TabOrder设为0,具体代码如下:

procedure TForm1.CheckBox1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_ADD then
begin
if CheckBox1.checked = false then
CheckBox1.Checked:= true
else
CheckBox1.checked:= false;
end

end;

就5分 也就能给你这么多提示,需要具体代码加分
RegisterHotKey
(
HWND hWnd,
//响应该热键的窗口句柄
Int id,
//该热键的唯一标识
UINT fsModifiers,
//该热键的辅助按键
UINT vk
//该热键的键值
);

用上面api 注册一个热键

procedure TForm1.CheckBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_ADD then
CheckBox1.checked:= true
else if key=vk_SUBTRACT then
CheckBox1.Checked:= false;
end;
不过你必须得将CheckBox1的TabOrder设为0,也就是将焦点定位在CheckBox1上,给分吧!朋友

用windows键盘函数即可