我在 Delphi 中收到 "undeclared identifier" 错误,我不知道为什么?

I am getting an "undeclared identifier" error in Delphi and I don't know why?

我遇到了麻烦,不确定为什么我在以下代码中收到 "Undeclared Identifier" 错误:

procedure getword;
var
  i: integer;
begin
  randomize;
  randomwordnumber := random (20) + 1;
  randomword := wordlist [randomwordnumber];
  for i:=1 to length(randomword) do word:= word + '?';
  lblrandomword.Caption := (word);
end;

这里还有确切的错误代码:

[Error] Unit1.pas(138): Undeclared identifier: 'lblrandomword'

提前致谢!

我们只能猜测,但 lblrandomword 可能是表格上的 TLabel。您必须使 getword 成为那种形式的方法。可能是这样的:

  TForm1 = class(TForm)
    lblrandomword: TLabel;
    //...
  private
    procedure getword;
    //...
  end;

procedure TForm1.getword;
var
  i: integer;
begin
  randomize;
  randomwordnumber := random(20) + 1;
  randomword := wordlist[randomwordnumber];
  for i := 1 to length(randomword) do word := word + '?';
  lblrandomword.Caption := (word);
end;

或者,您可以将标签作为参数传递给 getword(由 Sebastian Proske 提供)。

补充说明:如果没有关于randomwordnumber等的错误信息,这些可能是全局变量。这通常被认为是不好的做法。