我需要制作一个“计算器”,计算出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我无法添加表格的图片,因为我没有足够的声誉:(
答案 0 :(得分:1)
iprac := sedPrac.value;
目前尚不清楚sedPrac
是什么。因此Value
属性是什么。如果Value
是字符串,则无法将字符串分配给整数。您需要首先转换为整数,如下所示:
iprac := StrToInt(sedPrac.value);
同样适用于iTheory
和iProject
。
当然,Value
可能已经是一个整数,在这种情况下你的代码就可以了。我最好的猜测是这些变量引用TSpinEdit
控件,而Value
是一个整数,所以一切都很好。但这只是猜测。
IntToStr (iPrac + iTheory + iProject) / 3
现在,IntToStr
是一个返回string
的函数。并且没有为字符串定义/
运算符。大概你打算写:
IntToStr((iPrac + iTheory + iProject) div 3)
请注意,您必须使用div
,因为该值是整数,/
是浮点除法。
最后的一些建议。
sedPrac
是什么。