【发布时间】:2011-01-23 10:03:38
【问题描述】:
我有这个程序:
procedure TForm1.Button1Click(Sender: TObject);
var
a:TForm2;
begin
a := TForm2.Create(Self);
a.Parent := ScrollBox1;
a.Align := alClient;
a.Show;
a.SetFocus;
end;
我将上面的代码更改为这个,但我收到一个错误,为什么? 我必须将此代码更改为?
procedure TForm1.MakeAform(aForm:Tform;Cmp:TComponent;Parent1:TWinControl;Align1:TAlign);
var
a:aForm; // Error Here
begin
a := aForm.Create(Cmp);
a.Parent := Parent1;
a.Align := Align1;
a.Show;
a.SetFocus;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
MakeAform(Tform2,Self,Panel1,alClient);
end;
【问题讨论】:
-
为什么需要 MakeAForm 程序?为什么它是 TForm1 类的一部分?
-
您希望我们猜测错误信息,对吧?我的猜测:未声明的标识符:aForm
-
或者错误信息是“标识符重新声明”?
-
@Cosmin 如果你看一下代码,它会变得很明显。当 OP 声明类型为
aForm的变量但aForm是实例而不是类型时会发生错误。 -
@David,这不是我想要表达的意思。这是一个程序员的网站。我希望用户拨打我们的帮助热线说
but i receive a error,但我希望程序员了解错误消息的重要性。提示:如果您在 Delphi 2010 中尝试用户的确切代码,在标记的行,您会收到错误消息E2007 Constant or type identifier expected。如果您在“消息”列表中突出显示错误消息并点击“F1”,您将获得一个实际有帮助的帮助页面,并提供了一个类似错误的很好示例。