IntToStr未声明的标识符错误

时间:2013-02-07 08:46:39

标签: delphi

我想在备忘录,列表框或其他内容中显示某些整数。我已经尝试过备忘录,列表框和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应用程序 - 这可能是问题吗?

由于

3 个答案:

答案 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 部分中声明。

总结:

  1. 检查两个变量是否都已声明;
  2. 在评估时检查 PhysCount <> 0。
  3. 祝你好运!

答案 2 :(得分:0)

如果包含 SysUtils ,只需查看其用途。