在EDIT的KeyPress事件里可以写;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if key in ['1'..'9'] then
end;或者根据ASCII码
if ord(key) =49 then来判断1..9来判断一引起键,
但要判断insert,delete等键时,就找不到对应的值了.问:
1,怎样才能判断出输入的是insert,delete键啊?
2,可以根据键盘的键值来判断吗?
0x2D INSERT 键\r
0x2E DELETE 键\r

解决方案 »

  1.   

    KeyDown事件中:
    if key=vk_Insert then//按下为Insert键,其他类似
      

  2.   

    每个键,都有他的MESSAGE的,包括组合键,如果只是得到我觉得没有太大的意思,还是用来定义按键后的功能比较好!
      

  3.   

    想实现的功能就是让某些(而不是整个程序)焦点输入处屏蔽掉DELETE.
    procedure Tformmain.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key= vk_delete thenend;这样是可以判断是输入DELETE键,但还是把EDIT1的内容删除掉了.
      

  4.   

    对输入框只是不响应DELETE键,
    可以做得到吗?
      

  5.   

    想实现的功能就是让某些(而不是整个程序)焦点输入处屏蔽掉DELETE.
    procedure Tformmain.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
      if key= vk_delete thenend;这样是可以判断是输入DELETE键,但还是把EDIT1的内容删除掉了.你要在加点:Key:=0;//这样你就不会让DELETE键有效了。
      

  6.   

    TKeyEvent = procedure(Sender: TObject; var Key: Word;
        Shift: TShiftState) of object;怎理解这个类啊?
      

  7.   

    楼上:帮忙解释一下这个
    TKeyEvent = procedure(Sender: TObject; var Key: Word;
        Shift: TShiftState) of object;
      

  8.   

    TkeyEvent 是一个键盘事件类, 表示:该类所触发处理的过程是"等号"后面对应的内容~