delphi中的按键说明.docx

上传人:b****4 文档编号:5282708 上传时间:2023-05-08 格式:DOCX 页数:9 大小:17.49KB
下载 相关 举报
delphi中的按键说明.docx_第1页
第1页 / 共9页
delphi中的按键说明.docx_第2页
第2页 / 共9页
delphi中的按键说明.docx_第3页
第3页 / 共9页
delphi中的按键说明.docx_第4页
第4页 / 共9页
delphi中的按键说明.docx_第5页
第5页 / 共9页
delphi中的按键说明.docx_第6页
第6页 / 共9页
delphi中的按键说明.docx_第7页
第7页 / 共9页
delphi中的按键说明.docx_第8页
第8页 / 共9页
delphi中的按键说明.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

delphi中的按键说明.docx

《delphi中的按键说明.docx》由会员分享,可在线阅读,更多相关《delphi中的按键说明.docx(9页珍藏版)》请在冰点文库上搜索。

delphi中的按键说明.docx

delphi中的按键说明

Delphi中一些常用的组合键值

CTRL+A:

#1CTRL+B:

#2CTRL+C:

#3CTRL+D:

#4CTRL+E:

#5CTRL+F:

#6CTRL+G:

#7

CTRL+H:

#8CTRL+I:

#9CTRL+J:

#10CTRL+K:

#11CTRL+L:

#12CR:

#13CTRL+N:

#14

CTRL+O:

#15CTRL+P:

#16CTRL+Q:

#17CTRL+R:

#18CTRL+S:

#19CTRL+T:

#20

CTRL+U:

#21CTRL+V:

#22CTRL+W:

#23CTRL+X:

#24CTRL+Y:

#25CTRL+Z:

#26ESC:

#27

CTRL+:

#28CTRL+]:

#29SHIFT+CTRL+-:

#30DEL:

#127

 

一般用在keydown、keyup、keypress事件中。

OnKeyDown和OnKeyUp事件中的Key是Word型的,表示用户按的是键盘上的哪个键,OnKeyPress中的Key是Char型,表示用户输入什么字符。

一个产生8位(char)常规健值,一个产生16位(word)功能健健值。

1.KeyPress主要用来捕获数字(注意:

包括Shift+数字的符号)、字母(注意:

包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符,KeyDown和KeyUp通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)

2.KeyPress只能捕获单个字符

KeyDown和KeyUp可以捕获组合键。

3.KeyPress可以捕获单个字符的大小写

4.KeyDown和KeyUp对于单个字符捕获的KeyValue都是一个值,也就是不能判断单个字符的大小写。

5.KeyPress不区分小键盘和主键盘的数字字符。

KeyDown和KeyUp区分小键盘和主键盘的数字字符。

6.其中PrScrn按键KeyPress、KeyDown和KeyUp都不能捕获。

keydown是键盘按下任何键

keypress是键盘按下任何数字键和任何字母键

 

keydown 与keypress的声明格式差别很大

1 onkeydown事件

type TKeyEvent  =  procedure  (Sender:

  TObject;  var  Key:

  Word;  Shift:

  TShiftState)  of  object;

property  OnKeyDown:

  TKeyEvent;

该事件在有任何键按下的时候,就发生。

看!

它响应的是Word类型,还能识别Shift键状态

2 onkeypress事件

type  TKeyPressEvent  =  procedure  (Sender:

  TObject;  var  Key:

  Char)  of  object;

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:

  CharAscii字符

//例如F1-F10只有onKeydown有反应

另外TWincontrol.  KeyPreview:

Boolean属性确定控件是否在子控件之前处理按键。

 

比如说enter键,

onkeypress事件

if key=#13  then   //当你按下enter键时触发该事件

do  something

 

onkeydown事件

if  key=13 then    //当你按下enter键时触发该事件

do something

 

 

其中所有的KeyDown事件里面应该用如下判断:

ifKey=VK_RETURNthen

...

所有的KeyPress事件里面应该用如下判断:

ifKey=#13then

...

postmessage(self.handle,wm_keydown,vk_tab,0);

keybd_event(VK_TAB,2,0,0);

perform(WM_NEXTDLGCTL,0,0);

SelectNext(ActiveControl,True,True);

...

但是显然用回车代码TAB显然不适合于BUTTON,你在它上面按回车的时候它会执行OnClick,所以不会TAB,你可以用别的键代替回车。

 

》》》》》》》》》》

 

键值

 

在keydown事件里面

showmessage(inttostr(key));

在keypress事件里面

showmessage(key);

就知道了。

Form1.KeyPreview:

=True;

procedureTForm1.FormKeyDown(Sender:

TObject;varKey:

Word;

Shift:

TShiftState);

begin

Showmessage(IntToStr(Key));

end;

procedureTForm1.FormKeyPress(Sender:

TObject;varKey:

Char);

begin

Showmessage(IntToStr(Ord(Key)));

end;

{VirtualKeys,StandardSet}

{$EXTERNALSYMVK_LBUTTON}

VK_LBUTTON=1;

{$EXTERNALSYMVK_RBUTTON}

VK_RBUTTON=2;

{$EXTERNALSYMVK_CANCEL}

VK_CANCEL=3;

{$EXTERNALSYMVK_MBUTTON}

VK_MBUTTON=4;{NOTcontiguouswithL&RBUTTON}

{$EXTERNALSYMVK_BACK}

VK_BACK=8;

{$EXTERNALSYMVK_TAB}

VK_TAB=9;

{$EXTERNALSYMVK_CLEAR}

VK_CLEAR=12;

{$EXTERNALSYMVK_RETURN}

VK_RETURN=13;

{$EXTERNALSYMVK_SHIFT}

VK_SHIFT=$10;

{$EXTERNALSYMVK_CONTROL}

VK_CONTROL=17;

{$EXTERNALSYMVK_MENU}

VK_MENU=18;

{$EXTERNALSYMVK_PAUSE}

VK_PAUSE=19;

{$EXTERNALSYMVK_CAPITAL}

VK_CAPITAL=20;

{$EXTERNALSYMVK_KANA}

VK_KANA=21;

{$EXTERNALSYMVK_HANGUL}

VK_HANGUL=21;

{$EXTERNALSYMVK_JUNJA}

VK_JUNJA=23;

{$EXTERNALSYMVK_FINAL}

VK_FINAL=24;

{$EXTERNALSYMVK_HANJA}

VK_HANJA=25;

{$EXTERNALSYMVK_KANJI}

VK_KANJI=25;

{$EXTERNALSYMVK_CONVERT}

VK_CONVERT=28;

{$EXTERNALSYMVK_NONCONVERT}

VK_NONCONVERT=29;

{$EXTERNALSYMVK_ACCEPT}

VK_ACCEPT=30;

{$EXTERNALSYMVK_MODECHANGE}

VK_MODECHANGE=31;

{$EXTERNALSYMVK_ESCAPE}

VK_ESCAPE=27;

{$EXTERNALSYMVK_SPACE}

VK_SPACE=$20;

{$EXTERNALSYMVK_PRIOR}

VK_PRIOR=33;

{$EXTERNALSYMVK_NEXT}

VK_NEXT=34;

{$EXTERNALSYMVK_END}

VK_END=35;

{$EXTERNALSYMVK_HOME}

VK_HOME=36;

{$EXTERNALSYMVK_LEFT}

VK_LEFT=37;

{$EXTERNALSYMVK_UP}

VK_UP=38;

{$EXTERNALSYMVK_RIGHT}

VK_RIGHT=39;

{$EXTERNALSYMVK_DOWN}

VK_DOWN=40;

{$EXTERNALSYMVK_SELECT}

VK_SELECT=41;

{$EXTERNALSYMVK_PRINT}

VK_PRINT=42;

{$EXTERNALSYMVK_EXECUTE}

VK_EXECUTE=43;

{$EXTERNALSYMVK_SNAPSHOT}

VK_SNAPSHOT=44;

{$EXTERNALSYMVK_INSERT}

VK_INSERT=45;

{$EXTERNALSYMVK_DELETE}

VK_DELETE=46;

{$EXTERNALSYMVK_HELP}

VK_HELP=47;

{VK_0thruVK_9arethesameasASCII’0’thru’9’($30-$39)}

{VK_AthruVK_ZarethesameasASCII’A’thru’Z’($41-$5A)}

{$EXTERNALSYMVK_LWIN}

VK_LWIN=91;

{$EXTERNALSYMVK_RWIN}

VK_RWIN=92;

{$EXTERNALSYMVK_APPS}

VK_APPS=93;

{$EXTERNALSYMVK_NUMPAD0}

VK_NUMPAD0=96;

{$EXTERNALSYMVK_NUMPAD1}

VK_NUMPAD1=97;

{$EXTERNALSYMVK_NUMPAD2}

VK_NUMPAD2=98;

{$EXTERNALSYMVK_NUMPAD3}

VK_NUMPAD3=99;

{$EXTERNALSYMVK_NUMPAD4}

VK_NUMPAD4=100;

{$EXTERNALSYMVK_NUMPAD5}

VK_NUMPAD5=101;

{$EXTERNALSYMVK_NUMPAD6}

VK_NUMPAD6=102;

{$EXTERNALSYMVK_NUMPAD7}

VK_NUMPAD7=103;

{$EXTERNALSYMVK_NUMPAD8}

VK_NUMPAD8=104;

{$EXTERNALSYMVK_NUMPAD9}

VK_NUMPAD9=105;

{$EXTERNALSYMVK_MULTIPLY}

VK_MULTIPLY=106;

{$EXTERNALSYMVK_ADD}

VK_ADD=107;

{$EXTERNALSYMVK_SEPARATOR}

VK_SEPARATOR=108;

{$EXTERNALSYMVK_SUBTRACT}

VK_SUBTRACT=109;

{$EXTERNALSYMVK_DECIMAL}

VK_DECIMAL=110;

{$EXTERNALSYMVK_DIVIDE}

VK_DIVIDE=111;

{$EXTERNALSYMVK_F1}

VK_F1=112;

{$EXTERNALSYMVK_F2}

VK_F2=113;

{$EXTERNALSYMVK_F3}

VK_F3=114;

{$EXTERNALSYMVK_F4}

VK_F4=115;

{$EXTERNALSYMVK_F5}

VK_F5=116;

{$EXTERNALSYMVK_F6}

VK_F6=117;

{$EXTERNALSYMVK_F7}

VK_F7=118;

{$EXTERNALSYMVK_F8}

VK_F8=119;

{$EXTERNALSYMVK_F9}

VK_F9=120;

{$EXTERNALSYMVK_F10}

VK_F10=121;

{$EXTERNALSYMVK_F11}

VK_F11=122;

{$EXTERNALSYMVK_F12}

VK_F12=123;

{$EXTERNALSYMVK_F13}

VK_F13=124;

{$EXTERNALSYMVK_F14}

VK_F14=125;

{$EXTERNALSYMVK_F15}

VK_F15=126;

{$EXTERNALSYMVK_F16}

VK_F16=127;

{$EXTERNALSYMVK_F17}

VK_F17=128;

{$EXTERNALSYMVK_F18}

VK_F18=129;

{$EXTERNALSYMVK_F19}

VK_F19=130;

{$EXTERNALSYMVK_F20}

VK_F20=131;

{$EXTERNALSYMVK_F21}

VK_F21=132;

{$EXTERNALSYMVK_F22}

VK_F22=133;

{$EXTERNALSYMVK_F23}

VK_F23=134;

{$EXTERNALSYMVK_F24}

VK_F24=135;

{$EXTERNALSYMVK_NUMLOCK}

VK_NUMLOCK=144;

{$EXTERNALSYMVK_SCROLL}

VK_SCROLL=145;

{VK_L&VK_R-leftandrightAlt,CtrlandShiftvirtualkeys.

UsedonlyasparameterstoGetAsyncKeyState()andGetKeyState().

NootherAPIormessagewilldistinguishleftandrightkeysinthisway.}

{$EXTERNALSYMVK_LSHIFT}

VK_LSHIFT=160;

{$EXTERNALSYMVK_RSHIFT}

VK_RSHIFT=161;

{$EXTERNALSYMVK_LCONTROL}

VK_LCONTROL=162;

{$EXTERNALSYMVK_RCONTROL}

VK_RCONTROL=163;

{$EXTERNALSYMVK_LMENU}

VK_LMENU=164;

{$EXTERNALSYMVK_RMENU}

VK_RMENU=165;

{$EXTERNALSYMVK_PROCESSKEY}

VK_PROCESSKEY=229;

{$EXTERNALSYMVK_ATTN}

VK_ATTN=246;

{$EXTERNALSYMVK_CRSEL}

VK_CRSEL=247;

{$EXTERNALSYMVK_EXSEL}

VK_EXSEL=248;

{$EXTERNALSYMVK_EREOF}

VK_EREOF=249;

{$EXTERNALSYMVK_PLAY}

VK_PLAY=250;

{$EXTERNALSYMVK_ZOOM}

VK_ZOOM=251;

{$EXTERNALSYMVK_NONAME}

VK_NONAME=252;

{$EXTERNALSYMVK_PA1}

VK_PA1=253;

{$EXTERNALSYMVK_OEM_CLEAR}

VK_OEM_CLEAR=254;

),其实不用记,你不是用delphi吗,在ide里面输入vk_f1总会吧,然后按住ctrl键

单击刚才你输入的vk_f1,就会出来啦!

至于key:

char的值,就是key:

word的ascII码,你可以看chr(vk_f1),chr(vk_enter),都可以哈!

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 职业教育 > 职业技术培训

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2