x := integer(Edit1.Text);
  y := integer(Edit2.Text);
  z:= x+y;
  Label3.Caption := inttostr(z);
当x=1 , y=1 时  z的输出为27955424到底是为什么? 怎样输出时正确的?

解决方案 »

  1.   

      x:=strtoint(Edit1.Text); 
      y:=strtoint(Edit2.Text); 
      z:=x+y; 
      Label3.Caption := inttostr(z);
      

  2.   

    strtoint把字符串转换为整型,才能相加
      

  3.   

    那我用integer 强转为什么就不可以了呢?
      

  4.   

    delphi是强类型语言,不可以就是不可以
      

  5.   

    integer ,你用它把字符串类型强制转换为整形,没听说过这样强制转的
    人家delphi已经给你相应的函数了strtoint,你就用人家的呗
      

  6.   

    因为Text类型为里面存放的是指针啊
    integer(Edit1.text)的到地是指针值
      

  7.   

    正解,不要把JAVA、C++等的类型转换带进来
      

  8.   


    稍微改进下,否则要用到try
      x:=strtointdef(Edit1.Text,0);
      y:=strtointdef(Edit2.Text,0);
      z:=x+y;
      Label3.Caption := inttostr(z);
      

  9.   

    稍微改进下,否则要用到try
      x:=strtointdef(Edit1.Text,0);
      ?-
    [/Quote]正解,楼主出来结贴了
      

  10.   


    假如lstr 是一个string类型的字符串,则 interger(lstr) 相当于 @lstr, 即取得的是 lstr在内存中的起始地址的整数形式。