本帖最后由 hao08 于 2009-08-31 23:41:25 编辑

解决方案 »

  1.   


    procedure TForm1.FormActivate(Sender: TObject); 
    var 
      K,K1,K2,K3: String;  
    begin 
      if StrToFloat(DBText12.Caption) > StrToFloat(DBText1.Caption) then 
        K1 := '生活用品';   if StrToFloat(DBText13.Caption) > StrToFloat(DBText2.Caption) then 
        K2 := '、房租水电';   if StrToFloat(DBText14.Caption) > StrToFloat(DBText3.Caption) then 
        K3 := '、油盐柴米';   K := k1 + k2 + k3;   Label1.Caption := '您本月的' + k + '费用已经超支,请节省开支!'; 
    end; 建议楼主有时间把基础好好补下!
      

  2.   

    还没看明白你所说的换成 DBText3.text 看看
      

  3.   

    你的问题是,你用字符串去比较,那样,'8'当然大于'10',因为'8'比'1'大,你需要吧caption转换成数值去比较
    if StrToFloat(DBText14.Caption) > StrToFloat(DBText3.Caption) then 
    当然为了容错,可以使用StrToFloatDef
    if StrToFloatDef(DBText14.Caption,0) > StrToFloatDef(DBText3.Caption,0) then 
      

  4.   

    DBText14.Caption>DBText3.Caption  这是字符的比较而非数字值的比较
      

  5.   


    这个比较全面,数字进行比较就不需要转化为数字型,字符串比较是按照ASCII进行比较的,所以你的方法会出问题。