如下:edit1只可输入数字和字母及退格键
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','a'..'z',#8]) then
begin
key:=#0;
MessageBeep(1);
end;
end;但如果我需要支持复制和粘贴,于是我改为
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in ['0'..'9','a'..'z',#8,#17]) then
begin
key:=#0;
MessageBeep(1);
end;
end;
#17是Ctrl的键盘码,可是还是不能按Ctrl+c或Ctrl+v
请问该如何解决.谢谢!

解决方案 »

  1.   

    两个解决方法:
    1)你把代码写道KEYDOWN里试试。
    2)用第三方控件,比如RAIZE.其实DELPHI自带了一个数字输入控件,好像是在SAMPLE页面里面,你自己可以找找。
      

  2.   

    先谢谢aquadp(阿凯) 的回答.
    不过1 代码在keydown中不能用.
    2.我除了数字,还要输入字符,所以你所的sample中的那个不适用.
      

  3.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if not (key in ['0'..'9','a'..'z',#8,#3,#22]) then
      begin
        key:=#0;
        MessageBeep(1);
      end;
    end;
      

  4.   

    谢谢gxgyj(杰克.逊) 请问#3,#22是什么意思?