procedure TForm1.CreateForm(FormClass: TFormClass; var Form);
begin
if not Assigned(Form) then //[Error] Unit1.pas(37): Incompatible types
Application.CreateForm(Formclass, Form);
Form.ShowModal; //[Error] Unit1.pas(39): Record, object or class type required
end;我的程序中包含许多窗口,当我需要建立某个窗口时,通过Form1中的一个通用的过程来建立这个窗口。但上面的过程中有错误,应该如何修改这个过程?
非常感谢!!!
begin
if not Assigned(Form) then //[Error] Unit1.pas(37): Incompatible types
Application.CreateForm(Formclass, Form);
Form.ShowModal; //[Error] Unit1.pas(39): Record, object or class type required
end;我的程序中包含许多窗口,当我需要建立某个窗口时,通过Form1中的一个通用的过程来建立这个窗口。但上面的过程中有错误,应该如何修改这个过程?
非常感谢!!!
解决方案 »
- 三个简单问题,100分奉上,谢谢.................................
- 请问 子线程可否停止所属的主线程
- 多线程调用web service出现错误提示:尚未调用 CoInitialize
- ~~~久违的 ABC 控件~~~~
- spcomm 问题 没有串口设备,大家帮我看看这段代码有没有问题!
- delphi7 dbexpress 连接mssql时出现问题?
- 高手请进!关于dll的
- 打印DBGRID预览时,如何显示第二页,并且如何缩小图象,(没有用任何控件)。
- 高分!!!BED与ADO的互换问题。
- 不知道Delphi怎么学习
- 使用batchmove之后出现乱码,求救!!我快被这个batchmove逼疯了!!!
- ADOQuery的insert问题
改为
var myform;
begin
myform:=formclass.create(self);
myform.showmodal;
end;
应该可以了
Form1:=TForm1.Create(Application);
Form1.ShowModal;
begin
if not Assigned(TForm(Form)) then //强制一下
Application.CreateForm(Formclass, Form);
TForm(Form).ShowModal;//强制一下
end;
Form1:=TForm1.Create(Application);
Form1.ShowModal;
FreeAndNil(Form1);放心吧,这样肯定没错,我一直都是这么做的。
begin
if not Assigned(TForm(Form)) then //需要类型转换
Application.CreateForm(Formclass, Form);
TForm(Form).ShowModal; //需要类型转换
end;
Form1:=TForm1.Create(self);
Form1.ShowModal;这个就可以啊