如何在编辑框中处理输入的格式:1.整数部分可无限制输,小数部分只能输入
两位,输第三位就输不进去,当编辑框为空不能输入小数点.
     2.如何限制非数值键的输入,但不限制delete和回车等功能键.
     3.用什么函数可取得键盘各键的 Ascii码

解决方案 »

  1.   

    1。试试
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    var
       s:set of char;
       i:integer;
    begin
    s:=['.',#8,'0'..'9'];
    i:=pos('.',edit1.text);
    if i>0 then
       s:=s-['.'];
    if (i>0)and(i=length(edit1.text)-2) then    //可任意控制-2,-3....
        begin
             key:=#0;
             exit;
        end;
    if not (Key in s)then
        Key := #0;
    end;3。ord(key)
      

  2.   

    1. maskedit
    2. maskedit
    3. form.keypreview:=true;
    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begincaption:=inttostr(key);
    end;
      

  3.   

    都可以直接在edit的KeyPress事件中写呀。
    1、if length(edit.text)-length(pos(edit.text,'.')) then
          key := #0
    2、if not (key in ['0'..'9','.',#8]) then
          key := #0;
    3、在KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);中,key本身就是Ascii码