问题如下:
有三个输入框Edit1,Edit2,Edit3和11个SpeedButton(分别标以9876543210.),当按动按钮时在Edit中输入数字。我在其中被输入焦点搞得昏头转向,变大家帮一下啦,谢谢。

解决方案 »

  1.   

    补充一下,请问(.)的键盘码是什么呢?我想限定在Edit框中只能输入数字和(.)。
      

  2.   

    procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
    if (key=190) or (key=110) then showmessage('.');
    end;
      

  3.   

    在KeyPress(Sender: TObject; var Key: Char)写就可能了
    if((Key<'0')and(Key>'9'))and(Key<>'.')then
     Key:=#0;
      

  4.   

    首先问题没有描述清楚直接用Sample里面那个SpinEdit不就OK?
      

  5.   

    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
    if((Key<'0')or(Key>'9'))and(Key<>'.')then
      Key:=#0;
    end;除了edit之外的控件在KeyPress(Sender: TObject; var Key: Char)中写成这样
    procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
    begin
      if((Key>='0')and(Key<='9'))or(Key='.')then
        Edit1.text:=edit1.text+Key
    end;
      

  6.   

    To: 补充一下,请问(.)的键盘码是什么呢?我想限定在Edit框中只能输入数字和(.)。
    ---------------------------------------------------------------------------Re:
      procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
      begin
        if not (key in ['0'..'9','.',Chr(VK_RETURN),Chr(VK_BACK)]) then 
           Key := #0;
      end;
      

  7.   

    你想做计算器吧?^_^
    procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
    begin
      if pos('.',Edit1.Text)>0 then if key = '.' then key := #0; //只允许存在一个.
      if not (key in ['0'..'9','.',#8,#46]) then key := #0;
    end;
      

  8.   

    SpinEdit好像不能输入小数呀,请大家继续指点一下。
    其实我的问题大致就是要实现像windows下的计算器的按钮输入功能,只不过不同的是要在不同的edit中去输入罢了。谢谢
      

  9.   

    现在有关小数点的问题已解决,就只有edit方面的问题了,大家继续指点。谢谢。
      

  10.   

    顺便再说一个,让Edit的文字靠右:
    SetWindowLong(Edit1.Handle,GWL_STYLE,GetWindowLong(Edit1.Handle,GWL_STYLE) or es_Right);
      

  11.   

    还是没有解决问题,继续请教大家了。
    有三个输入框Edit1,Edit2,Edit3和11个SpeedButton(分别标以9876543210.),当按动按钮时可在任一个有输入焦点的Edit中输入数字和小数点,功能类似计算器中的输入。谢谢了。
      

  12.   

    按道理来说,在每一个按钮的onchick事件中输入以下代码是可行的,但实际上是不行的,总出现“抽象错误”的警告,请问如何解决呢?自己顶一下。
    var
      edit:Tedit;   if Edit.Focused then
       begin
          Edit.Text := Edit.Text+'数字';
       end;