TEdit如何得到按键信息并显示出来?
 例如:用户在TEDIT上 按 Ctrl+F1, TEdit上显示Ctrl+F1对于功能键,onkeydown事件 的 char 值不对应。
F1 对应 p
F2 对应 q 
..
Enter 键 检测不到。TEDIT如何捕捉到所有按键?

解决方案 »

  1.   

    在 onkeyPress   中判斷試下。
      

  2.   


    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      temp: string;
    begin
      temp := '';
      if ssShift in Shift then temp := temp + 'Shift+';
      if ssAlt in Shift then temp := temp + 'Alt+';
      if ssCtrl in Shift then temp := temp + 'Ctrl+';
      case Key of
        vk_f1: temp := temp + 'F1';
        vk_f2: temp := temp + 'F2';
        //只写上面两个功能键的代码吧,大量的重复代码自己写,以及网上搜虚拟键值表
        else temp := temp + Char(Key);
      end;
      Key := 0;
      Edit1.Text := temp;
    end;
      

  3.   

    Enter的键值是13......
      case Key of
        vk_f1: temp := temp + 'F1';
        vk_f2: temp := temp + 'F2';
        13   : temp := temp + 'Enter';
     ......
      

  4.   

    上面case语句里的vk_f1至vk_f12判断,可以简写成一句:vk_f1..vk_f12: temp := temp + 'F' + InttoStr(Key-111);
      

  5.   

    同意lihuasoft 的方法。
    至少有一点是值得大家学习的,那就是不断改进自己的代码,并从中学习及养成良好的习惯。
      

  6.   

    onkeypress,
    keyup,keydown等也可