我遇到了麻烦,不确定为什么在以下代码中出现“未声明的标识符”错误:
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'
先谢谢您!
答案 0 :(得分:2)
我们只能猜测,但是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
的错误消息,依此类推,则可能是全局变量。通常认为这是不好的做法。