var
 vari1,vari2,vari3,vari4:currency;
begin
   vari1:=strtofloat(edit1.text);
   vari2:=strtofloat(edit2.text);
   vari3:=strtofloat(edit3.text);
   vari4:=strtofloat(edit4.text);
   
edit1和edit2肯定会填写的,edit3 and edit4不一定会填写的,想要它们都以:x1/x2/x3这种格式显示在edit5中,但x1+x2+x3刚好为10,且x1,x2,x3都为integer;
如果只填写了edit1,and edit2那么会以x1/x2的形式显示在edit5中,此时的x1+x2为10,
且vari1/vari2/vari3/vari4约等于x1/x2/x3/x4,四舍五入进行计算的。我来举个例吧:我在edit1.edit4,edit5中分别填入23, 38, 39,那么在button1 单击后会有2/4/4显示在edit5中.不知明白了我的意思了没有。
我想求在button1的onclick中的代码。明晚22:00一定给分!
多谢啦!

解决方案 »

  1.   

    function inttoint(int i):integer;//将22转化为2,将38转化为4
    begin
      result:= (i + 5)/10;
    end;
    edit5.text = inttostr(inttoint(strtoint(edit1.text))) + '/' + inttostr(inttoint(strtoint(edit2.text))) + '/' + inttostr(inttoint(strtoint(edit3.text)))
      

  2.   

    呵呵,厉害,这样的问题都回答出来了.pfpf :>)
      

  3.   

    代码没有写完,就是判断edit3.text<>''和edit1 2 3 加起来=10
    不难,还有整整一天,算了,留给楼下的吧:)
      

  4.   

    hammer_shi(@农业专家@) 兄太那个点儿了吧!
    firetoucher(风焱) 兄,你还没有考虑x1+x2+x3或x1+x2+x3+x4等于10的问题呀!
    (如果在edit1,edit2,edit3中输入了值就会有x1/x2/x3,如果在edit1.edit2中输入了数值,就会有x1/x2,具相加都是等于10的)
    谢过firetoucher(风焱)兄啦!
      

  5.   

    还不太明白你的意思啊
    如果只输入edit1 edit2但相加不等于10怎么办?
    如果输入edit4但没有edit3怎么办?
    如果所有的加起来都不等于10 怎么办?
      

  6.   

    hua2000(风雨雪) :不好意思,说实在的我看到你的帖子是真的看不明白意思.
    但是 firetoucher(风焱) 能回答上来我就有些佩服他的理解能力.
    不过我估计你的问题不难, firetoucher(风焱) 肯定能搞定的.放心好了.
    要是言语有什么不对的地方还请谅解,粗人不善言辞.
      

  7.   

    我更进一步解释一下吧!1.本来就没有要edit1,和edit2相加等于10;
    2.如果只输入了edit4没有输入edit3会提示它重新输入数据,同时清空edit1,edit2,edit3,edit4中的数据;
    3.没有要求加起来等于10呀!只是要看每一个数据大约占总输入数据的十分之几呀!
      

  8.   

    比如:如果第一个vari1占总数据的2.8/10的话,那么它就大约占三份呀
    不知明白了没有!没有明白的话,再问吧!
    多谢!
      

  9.   

    hammer_shi(@农业专家@) ( )的话的意思,我那时理解错啦!
    hammer_shi(@农业专家@) 说自已是粗人,太谦虚啦!哈哈!(有可能是个高人)
      

  10.   

    试试,为了让你看的清楚,几乎没有用循环,是下面的意思么?var
    x:array[1..4] of integer;
    total,i:int;
    begin
      if edit1.text<>'' then x[1]:= strtoint(edit1.text) else x[1]:=0;
      if edit2.text<>'' then x[2]:= strtoint(edit2.text) else x[2]:=0;
      if edit3.text<>'' then x[3]:= strtoint(edit3.text) else x[3]:=0;
      if edit4.text<>'' then x[4]:= strtoint(edit4.text) else x[4]:=0;
      total:= x[1]+x[2]+x[3]+x[4];
      fori:= 1 to 4 do
        x[i]:= (x[i]/total)*10 + 0.5;
      edit5.text := '';
      if x[1]<>0 then edit5.text := inttostr(x[1]);
      if x[2]<>0 then edit5.text := edit5.text + '/' + inttostr(x[2]);
      if x[3]<>0 then edit5.text := edit5.text + '/' + inttostr(x[3]);
      if x[4]<>0 then edit5.text := edit5.text + '/' + inttostr(x[4]);
      

  11.   

    end;//写掉了,button1的onclick事件头就不写了:)
      

  12.   

    var
    x:array[1..4] of integer;
    total,i:int;
    这个声明有一点儿错误,导到后面的。。
    edit1或edit2,或edit3都应是currency类型的呀!
      

  13.   

    他们输进的数据都是currency型的!
      

  14.   

    而且值都是类似20038382.38这样的值呀!把它输入到Tedit中.