要如何让EDIT只可以输入数字和中文逗号?
if not (key in ['0'..'9',',',#8,#32,#13]) then key:= #0;//这样可以输入英文逗号,如何改成可以输入中文逗号呢?

解决方案 »

  1.   

    //用2009的话,这样就行了。
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not (Key in ['0'..'9', #8]) and (Key <> ',') then
        Key := #0;
    end;
      

  2.   

    在edit的exit事件中,加入以下代码procedure Tfm1.Edit1Exit(Sender: TObject);
    begin
      edit1.text:=stringreplace(edit1.text,',',',',[rfReplaceAll]);
    end;
      

  3.   


    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not ((key in ['0'..'9',',',#8,#32,#13]) or (ord(key) = 163)) then key:= #0;
    end;
    完成,结帖吧
      

  4.   

    ctl+V如何处理? 
    不想屏蔽掉
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if not ((key in ['0'..'9',',',#8,#32,#13]) or (ord(key) = 163)) then key:= #0;
    end;其它的包括 ;:
      

  6.   

    只允许输入数字,供你参考
    SetWindowLong(edtSockPort.Handle, GWL_STYLE, GetWindowLong(edtSockPort.Handle, GWL_STYLE) or ES_NUMBER);