代码如下:问题是当我没有创建Form2时此代码会产生错误
procedure TForm1.Button1Click(Sender: TObject);
var
objfor :TForm;
begin
objfor := TForm(Application.FindComponent('Form2'));
objfor.Show;
end;
我的目的是实现如下代码
procedure TForm1.Button1Click(Sender: TObject);
var
objfor :TForm;
begin
objfor := TForm(Application.FindComponent(inputbox('输入Form窗体名称','窗口名称:','Form2')));
if objfor = nil then//如果找不到或者窗口没有创建就创建对应类的窗口
begin
objfor:=T《这里我如何替换》.Create(Application);
end;
objfor.Show;
end;
我的意识是让用户自己输入自己需要打开的窗口名称该怎样实现。
procedure TForm1.Button1Click(Sender: TObject);
var
objfor :TForm;
begin
objfor := TForm(Application.FindComponent('Form2'));
objfor.Show;
end;
我的目的是实现如下代码
procedure TForm1.Button1Click(Sender: TObject);
var
objfor :TForm;
begin
objfor := TForm(Application.FindComponent(inputbox('输入Form窗体名称','窗口名称:','Form2')));
if objfor = nil then//如果找不到或者窗口没有创建就创建对应类的窗口
begin
objfor:=T《这里我如何替换》.Create(Application);
end;
objfor.Show;
end;
我的意识是让用户自己输入自己需要打开的窗口名称该怎样实现。
解决方案 »
- 关于Delphi调用webservices的一个问题,请教
- 帮我看看下面的代码
- 请问谁有delphi3,十万火急,谢谢!!!
- 问一个菜鸟问题~请指教,如何打开一个指定的文件~
- 为什么在FORM2里插入记录‘补款’,在FORM1里对‘补款’进行求和计算,有时候就求和,有时候就不求和?
- 关于连锁配送软件事务处理的大讨论.
- 有谁用delphi编的遗传算法程序代码
- 哪里有 Delphi 6 的电子版教程,急用
- 请问既懂PB又懂Delphi的人
- 用ADOQUERYR通过一个SELECT的SQL语句取得结果集后,如何在程序中判断结果集中的数据以被用户所改动?
- 嘿嘿,小弟需要做一套网吧更新维护系统,有做过的哥们请和我联系,酬劳好说:D
- 新手问题 在线等~~
...
RegisterClass(TForm2);
RegisterClass(TForm3);
...
finalization
...
UnRegisterClass(TForm2);
UnRegisterClass(TForm3);
... function TMainForm.FindForm(FormName,FormCaption: string): TForm;
var
FindForm:TForm;
FindFormClass:TFormClass;
classname:string;//窗体类名
begin
FindForm:=tform(FormName);
classname:='T'+formname;
FindFormClass:=TFormClass(Findclass(classname));
if FindFormClass<>nil then
begin
application.Createform(FindFormClass,FindForm);
FindForm.Caption:=FormCaption;
result:=FindForm;
end;
end;
先注册VCL原生组件,使用RTTI技术就能通过字符串动态创建控件。
只要调用FindClass/GetClass就会出错。不是多文档是可以的。
代码如下
initialization
RegisterClass( TMDIChild );
//或者 RegisterClasses( [TMDIChild] );
finalization
UnRegisterClass( TMDIChild );
//或者 UnRegisterClasses( [TMDIChild] );function ClassFactoryForTWinControl(
AnyTWinControlClass: String;
AOWner: TComponent) :TWinControl;
var
FindClass: TPersistentClass;
begin
FindClass := GetClass(AnyTWinControlClass);
if (FindClass <> nil) and FindClass.InheritsFrom(TWinControl) then
Result := TWinControlClass(FindClass).Create(AOwner)
else
Result := nil
end;procedure TMainForm.Button1Click(Sender: TObject);
var
obj:TWinControl;
begin
obj := ClassFactoryForTWinControl('TMDIChild',Application);
if obj = nil then Exit;
with obj do
begin
showMessage(Name);
//Width := 100;
//Height := 100;
//Left := 10;
Show;
end
end;