1、比如说有一个panel1,里面可以编辑的只有几个Edit,本来有个按钮用来计算几个Edit的内容,计算结果显示在一个label上。想:
    当其它任何一个Edit里有键盘输入时,显示结果的label清空;
2、格式化一个Float类型的值为保留三位小数;
3、检测一个Edit里面输入的是不是整形或者实型的值。
对于高手应该是没有问题的了。

解决方案 »

  1.   

    1.每个文本框得到焦点时候清控label2.用formatfloat() 函数3.简单点就用strtofloat()函数,复杂的就得处理事件了
      

  2.   

    1. 在那几个Edit的onKeyPress事件里写如下代码:
       label1.caption:='';
    2.formatfloat('0.000',1234.5787);
    3.
      

  3.   

    同意 yinzhiw(不懂OOP) 的说法;
      

  4.   

    function Tpub.IsInt(s:string):boolean;
    //查询当前数据是否数字型;
    var i:integer;
    begin
    result:=false;
    for i:=0 to length(s) do
    begin  //for loop ;
     if s[i] in ['0','1','2','3','4','5','6','7','8','9'] then
      result:=true
     else
      begin
        result:=false;
        exit;
      end;
    end;   //for loop;
    end;
      

  5.   

    第一个问题主要还是为了省事,估计要对整个TEdit类都这样做,但我不会。
    第二个已经解决。
    第三个我好像以前是判断可不可以用Inttofloat()来得出一个值,可以就让Exit,不可以不准走。
    大家再帮帮忙。
      

  6.   

    要不就第三个问题就这么写把
    procedure Tfrm_input_quotiety.E_q_numKeyPress(Sender: TObject;
      var Key: Char);
    begin
         if word(key)=46 then //只能有一个小数点
         begin
             if strpos(pchar(E_q_num.Text) ,chr(46))<>nil then key:=chr(0);
         end
         else if (word(key)<>8) and (word(key)<48) or (word(key)>57) then key:=chr(0);
    end;
      

  7.   

    1、看看别人的吧。不会。
    2、P := strtofloat(FormatFloat('0.0000',P));
    3、try
          strtofloat(trim(edit1.Text));
       except
          Edit1.SetFocus ;
       end;