我想在备忘录,列表框或其他内容中显示某些整数。我已经尝试过备忘录,列表框和showmessage(),但每个都会抛出字符串和整数之间的不兼容错误。
这是它开始出错的地方:
Memo1.Lines.Add('Physical Functioning: '+PhysFunc div PhysCount);
PhysFunc和PhysCount是进一步计算的整数。我试过了,例如:
Memo1.Lines.Add('Physical Functioning: '+IntToStr(PhysFunc div PhysCount));
和
Memo1.Lines.Add(IntToStr('Physical Functioning: '+PhysFunc div PhysCount));
和
Memo1.Lines.Add(('Physical Functioning: '+PhysFunc div PhysCount).AsString);
与ListBox和showmessage()相同的东西。但没有工作。 IntToStr返回E2003未声明的标识符,而.AsString返回错误,整数不包含成员'AsString'。还有其他选择吗?
我在Delphi中使用SDI应用程序 - 这可能是问题吗?
由于
答案 0 :(得分:5)
您正在调用Add
TStrings
方法,该方法会收到string
类型的单个参数。您需要连接字符串和整数。为此,您必须将整数转换为字符串。
您尝试使用IntToStr
这样做,这是一种非常合理的方法。但那失败了,因为编译器无法找到IntToStr
。现在,IntToStr
已在SysUtils
单元中声明,因此您必须将该单元添加到uses
子句中。
但是,我可能会在这里使用Format
。与IntToStr
类似,此函数在SysUtils
中声明,您必须使用它。
Memo1.Lines.Add(Format('Physical Functioning: %d', [PhysFunc div PhysCount]));
有关格式的更多详细信息,请阅读format strings的文档。
答案 1 :(得分:0)
第一行代码不起作用,因为 PhysFunc div PhysCount 是一个整数,并且它没有转换为字符串。
第二行代码应该可以工作,但我会检查 PhysFunc 和 PhysCount 的实际值。是否有可能 PhysCount 以某种方式等于0?
第三行代码不起作用,因为 IntToStr 需要整数,而你给了他一个字符串。
第四行代码不起作用,因为正如你所说,整数不包含成员'AsString'
你也说过:
IntToStr返回E2003未声明标识符
这也可能是问题:未声明两个变量中的一个。确保它们都在 var 部分中声明。
总结:
答案 2 :(得分:0)
如果包含 SysUtils ,只需查看其用途。