2024年3月21日发(作者:)
Shift 是一个集合变量。
type TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
也就是说TShiftstate类型有ssShift, ssAlt, ssCtrl, ssLeft(鼠标左键), ssRight(鼠
标右键), ssMiddle(鼠标中键), ssDouble (鼠标双击)
Value Meaning
ssShift The Shift key is held down.
ssAlt The Alt key is held down.
ssCtrl The Ctrl key is held down.
ssLeft The left mouse button is held down.
ssRight The right mouse button is held down.
ssMiddle The middle mouse button is held down.
ssDouble The mouse was double-clicked.
用来判断组合键中是否用shift、Ctrl、鼠标左键、右键、中键、双击事件。
Delphi中一些常用的组合键值
CTRL+A:#1 CTRL+B:#2 CTRL+C:#3 CTRL+D:#4 CTRL+E:#5 CTRL+F:#6
CTRL+G:#7
CTRL+H:#8 CTRL+I:#9 CTRL+J:#10 CTRL+K:#11 CTRL+L:#12 CR:#13
CTRL+N:#14
CTRL+O:#15 CTRL+P:#16 CTRL+Q:#17 CTRL+R:#18 CTRL+S:#19 CTRL+T:#20
CTRL+U:#21 CTRL+V:#22 CTRL+W:#23 CTRL+X:#24 CTRL+Y:#25
CTRL+Z:#26 ESC:#27
CTRL+:#28 CTRL+]:#29 SHIFT+CTRL+-:#30 DEL:#127
一般用在keydown、keyup、keypress事件中。
OnKeyDown和OnKeyUp事件中的Key是Word型的,表示用户按的是键盘上
的哪个键,OnKeyPress中的Key是Char型,表示用户输入什么字符。一个产生
8位(char)常规健值,一个产生16位(word)功能健健值。
ss主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包
括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、
Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方
向键外的ANSI字符,KeyDown和KeyUp 通常可以捕获键盘除了PrScrn所有按
键(这里不讨论特殊键盘的特殊键)
ss 只能捕获单个字符
KeyDown 和KeyUp 可以捕获组合键。
ss 可以捕获单个字符的大小写
n和KeyUp 对于单个字符捕获的KeyValue 都是一个值,也就是不能
判断单个字符的大小写。
ss 不区分小键盘和主键盘的数字字符。
KeyDown 和KeyUp 区分小键盘和主键盘的数字字符。
6.其中PrScrn 按键KeyPress、KeyDown和KeyUp 都不能捕获。
keydown是键盘按下任何键
keypress是键盘按下任何数字键和任何字母键
keydown 与keypress的声明格式差别很大
1 onkeydown事件
type TKeyEvent = procedure (Sender: TObject; var Key: Word; Shift: TSh
iftState) of object;
property OnKeyDown: TKeyEvent;
该事件在有任何键按下的时候,就发生。看!它响应的是Word类型,还能识别
Shift键状态
2 onkeypress事件
type TKeyPressEvent = procedure (Sender: TObject; var Key: Char) of o
bject;
property OnKeyPress: TKeyPressEvent;
该事件响应的是字符类型Char,只能识别ASCII码,不能识别组合键和控制键
和功能键。按下功能键、控制键不产生该事件,但产生OnkeyDown事件。
TWinControl与键盘相关的3个事件如下:
OnKeyDown:键按下
OnKeyPress:有Ascii字符产生
OnKeyUp:键放开
其中OnKeyDown、OnKeyUp对任何按键都有响应,传入参数为
var Key: Word 键的扫描值
Shift: TShiftState 表示控制键状态,包括键盘上的Ctrl、Shift、Alt和鼠标的
左、中、右键及双击。
OnKeyPress事件只对Ascii有响应,传入参数为
var Key: Char Ascii字符
//例如F1-F10只有onKeydown有反应
另外TWincontrol. KeyPreview:Boolean属性确定控件是否在子控件之前处理按
键。
比如说enter键,
onkeypress事件
if key=#13 then //当你按下enter键时触发该事件
do something
onkeydown事件


发布评论