繁体   English   中英

不兼容的类型:“整数”和“过程,无类型的指针或无类型的参数”

[英]Incompatible types: 'Integer' and 'procedure, untyped pointer or untyped parameter'

给变量一个计数值时出现错误(不知道这是否有意义)。

iCount := inc(iCount,1);

这是我的代码:

var
  iCount : Integer;
procedure TForm1.FormActivate(Sender: TObject);
begin
  edtOutput.SelAttributes.size := 10;
  edtOutput.SelAttributes.name := 'Courier';
  edtOutput.Lines.Add(('Name') + #9 + #9 + ('Age') + #9 + #9 + ('Child or adult'));
end;

procedure TForm1.btnOKClick(Sender: TObject);
var
  sName     :String;
  iAge      :Integer;
begin
  iCount := inc(iCount,1);   // <--- HERES THE ERROR
  sName := edtName.text;
  iAge := edtAge.value;

当我给iCount赋值时,会出现此错误:

Incompatible types: 'Integer' and 'procedure, untyped pointer or untyped parameter'

哦,edtOutput是RichEdit 我已经按照我的教科书所说的完全复制了它(不是整个程序,只是iCount东西)

任何有关如何解决此问题的建议将不胜感激!

inc的签名在文档中描述:

procedure Inc(var X: Ordinal; [ N: Integer]); overload;
procedure Inc(var X: Ordinal; [ N: Integer]); overload;

换句话说,这是一个接收要递增的变量作为var参数的过程。 它不是函数,也不返回值。

您的代码应为:

inc(iCount);

Inc(ICount, 1); 是你所需要的全部。

替代方案:

ICount := ICount + 1;
Inc(iCount); // This increases by one, by default.
Inc(iCount, x); // This increases by x, where x is an integer.

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM