Delphi:需要帮助解决字符串和整数错误

时间:2014-02-05 16:40:03

标签: delphi

我需要制作一个“计算器”,计算出3个不同标记的平均值。

procedure TForm1.btnAddClick(Sender: TObject);
var
    sName                          : string;
    iprac, itheory, iproject       : integer;
begin
 sName := edtStudentName.text;
 iprac := sedPrac.value;
 iTheory := sedTheory.Value;
 iProject := sedProject.Value;
  lblOutput.caption := sName + ' You got ' + IntToStr (iPrac + iTheory + iProject) / 3;

end;
end.

到目前为止这个代码,但是我收到了一个错误:

[Error] ComputerStudyMarks_u.pas(46): Incompatible types: 'String' and 'Integer'

请耐心等待我!我是一个铁杆菜鸟,但这是为了学校。 也许有人可以帮我这个程序。 我正忙着使用“Enjoy Delphi”这本书,我从书中复制的代码给了我一个错误。 任何帮助将非常感激! P.S我无法添加表格的图片,因为我没有足够的声誉:(

1 个答案:

答案 0 :(得分:1)

iprac := sedPrac.value;

目前尚不清楚sedPrac是什么。因此Value属性是什么。如果Value是字符串,则无法将字符串分配给整数。您需要首先转换为整数,如下所示:

iprac := StrToInt(sedPrac.value);

同样适用于iTheoryiProject

当然,Value可能已经是一个整数,在这种情况下你的代码就可以了。我最好的猜测是这些变量引用TSpinEdit控件,而Value是一个整数,所以一切都很好。但这只是猜测。


IntToStr (iPrac + iTheory + iProject) / 3

现在,IntToStr是一个返回string的函数。并且没有为字符串定义/运算符。大概你打算写:

IntToStr((iPrac + iTheory + iProject) div 3)

请注意,您必须使用div,因为该值是整数,/是浮点除法。


最后的一些建议。

  • 在呈现代码时,显示所有信息。您在此处省略了一些类型,因此我们不知道sedPrac是什么。
  • 当您提供错误消息时,请确保我们可以使用您提供的代码将消息中的行号结合起来。在你的问题中,我们不知道第46行是哪一行。