大家好,我是考100分的小小码 ,祝大家学习进步,加薪顺利呀。今天说一说鼠标代码(按键代码),希望您对编程的造诣更进一步.
1.键盘编程
1.1键盘
在 Windows 下,键盘的按键事件如下图:
以上按键事件传入的参数可以用来判断用户的按键行为:
- OnKeyDown 与 OnKeyUp
参数为用户按键的 Key 值(word值),代表 Windows 中的 Virtual Key Code。
- OnKeyPress
参数为一个 Char 值,是一个 ASCII 字符。
Virtual Key Code:
1.2键盘事件
- OnKeyDown
在键盘上按下任意一个键都会触发该事件。对于字母键、数字键、功能键、Ctrl、Shift 或 Alt 等键都将触发该事件。
- OnKeyPress
在键盘上按下一个字符键会触发该事件,单独按下功能键、Ctrl、Shift 或 Alt 等键不会触发该事件。
- OnKeyUp
在按下键盘上任一键后松开时会触发该事件。对于字母键、数字键、功能键、Ctrl、Shift 或 Alt 等键都将触发该事件。
- TShiftState
在 OnKeyDown、OnKeyUp、OnMouseDown 和 OnMouseUp 等事件中,包含一个类型为 TShiftState 的变量 Shift,其值用于判断当键盘上的键按下时,Shift、Alt 和 Ctrl 键的状态,或者按下鼠标的状态。
TShiftState 类型的定义:
Type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
1.3键盘编程示例
示例一:在按键过程中让窗体颜色发生变化。
var
FormColor: TColor;
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
FormColor := Form1.Color;
Form1.Color := clGreen;
end;
procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
Form1.Color := FormColor;
end;
示例二:模拟按下键盘的某个键。
在该例中,需要使用 Delphi WinAPI 消息函数 PostMessage,界面如下:
示例代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
// a
PostMessage(Edit1.Handle, WM_KEYDOWN, 65, 0);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
// b
PostMessage(Edit1.Handle, WM_KEYDOWN, 66, 0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// c
PostMessage(Edit1.Handle, WM_KEYDOWN, 67, 0);
end;
示例三:在屏幕上输出按键操作的结果,包括:Shift、Alt和Ctrl键。界面如下:
示例代码:
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
Label1.Caption := '';
if Shift >= [ssShift] then
Label1.Caption := 'Shift + ';
if Shift >= [ssAlt] then
Label1.Caption := 'Alt + ';
if Shift >= [ssCtrl] then
Label1.Caption := 'Ctrl + ';
Label1.Caption := Label1.Caption + inttostr(key);
end;
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/25502.html