声明:
procedure CreateMyForm(ComClass:TComponentClass; Form:TForm;)
begin
Application.CreateForm(ComClass,Form);
end;
...执行:
CreateMyForm(TFrmA,FrmA); 是可以创建窗体
FrmA 上有个 Label1
这时 FrmA.Label1.Caption := 'XXX' 就会出错
如果 Self.Label1.caption := 'XXX' 就可以通过
我想可能是声明的时候 TComponentClass 和 Tform 有误请大家帮忙!!!
procedure CreateMyForm(ComClass:TComponentClass; Form:TForm;)
begin
Application.CreateForm(ComClass,Form);
end;
...执行:
CreateMyForm(TFrmA,FrmA); 是可以创建窗体
FrmA 上有个 Label1
这时 FrmA.Label1.Caption := 'XXX' 就会出错
如果 Self.Label1.caption := 'XXX' 就可以通过
我想可能是声明的时候 TComponentClass 和 Tform 有误请大家帮忙!!!
解决方案 »
- 使用控件的问题
- 如何调用OutLook Express 创建一封带附件的邮件?
- 各位朋友们来说说QQ的聊天室是如何实现的?
- 请问各位高手:hHwnd := FindWindow('#32563', nil) 中的#32563是怎么得来的?
- 不算简单的问题
- socket客户端在与服务器端断开联结后如何再次与服务器保持联结的简单问题!!!
- 如何查找EXCEL的属性
- 来者有分!!!这里好热闹!!!???……ieruiqwerqiwreqpowe
- delphi的帮助应该怎么阅读?我怎么找不到头绪,另外sdk什么意思??
- 错误信息就是这个,请大家指教:
- 设置页边宽边距
- 急!!异构数据库数据的批量导入导出
这是因为你的FrmA没有指向真正的对象(还是nil的)。你看一看VCL的源码
其中
procedure TApplication.CreateForm(InstanceClass: TComponentClass; var Reference);
留意后一个参数的前面有 var
所以如果你要正确调用的话那么改为
procedure CreateMyForm(ComClass:TComponentClass; var Form:TForm;)
这样就可以正确了,
procedure CreateMyForm(ComClass:TComponentClass; var Form:TForm);
begin
Application.CreateForm(ComClass,Form);
end;procedure TForm1.Button1Click(Sender: TObject);
begin
CreateMyForm(TForm2,form2);
form2.Show;
form2.Label1.Caption := 'test';
end;
begin
Application.CreateForm(ComClass,Form);
end;将 var Form:TForm 改成 Var Form 就要了 不要声明什么类型