各位大虾你们好,我是一个初学的菜鸟,请大家多多关照,我在这里先谢了。
我今天想求教大家是,我现在正用Delphi7编写一个无键的计算器(就是只有一个edit控件的输入框,数字的输入、加减乘除等功能直接用键盘搞定,不用鼠标,就像windows自带的计算器)。现在的问题是:当按键盘上的“加号键”时,“加号字符”也被输入到“输入框”里,我当初的设想是:当我按下键盘上的“加号键”时,“输入框”里的“数字”就被放到一个Float型变量里(如变量A),然后,“输入框”被清空,再输入一个数字,然后回车显示结果。可是在按“加号键”时,“加号字符”也跑到了“输入框”里,而且还跟着输入框里的其它“数字”数据一起,被非法的植入到Float型变量里,导致程序错误。这样的问题该怎么办????
请各位大虾多多指教。谢谢!!!我的QQ是957576690
我的Email是[email protected]

解决方案 »

  1.   

    在onkeyup事件的时候判断按键是什么键,然后决定相应做什么事情,就这样
      

  2.   

    这个是我临时想出来的办法,也许有更好的,这个仅作为参考
    procedure TForm1.edt1KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    var
      AStr: string;
    begin
      if Key = 107 then
      //判断符号,“+”是107,其他符号你可以用edt1.text := inttostr(key)来查看,或者去他途径
      begin
        AStr := edt1.Text;
        AStr := Copy(AStr, 1, Length(AStr) - 1);
        edt1.Text := AStr;
        edt1.SelStart := Length(edt1.Text);
      end;
    end;
      

  3.   

    现在有个新问题,就是如何让Edit控件里的插入点光标自动(或者当一个事件被触发时)从第一个字符的前面跑到最后一个字符的后面。
      

  4.   

    edt1.SelStart   :=   Length(AStr);这个就是把光标定位到字符串的最后一个