如何根据一个字符串,如:’TFrom1’
通过一个方法返回一个类的实例,如:ReturnClsObj(ClsName:string):TForm;
关键问题是,现在不知道怎么样才能根据这个字符串,生成一个类,而这个类的名称就是上面的字符串啊~~
大家帮忙了啊!!!!!多谢
通过一个方法返回一个类的实例,如:ReturnClsObj(ClsName:string):TForm;
关键问题是,现在不知道怎么样才能根据这个字符串,生成一个类,而这个类的名称就是上面的字符串啊~~
大家帮忙了啊!!!!!多谢
解决方案 »
- 困难的Dll调用方法,急....
- ▲▲▲▲▲用QRreport如何设计这样的报表???▲▲▲▲▲
- 串口通讯时,接收的内容超长该怎么办?很急很急的啊!
- ACCESS数据库,aa为一字符串型的字段,选出其值为空的记录,怎么查不出来?
- 如何得到当前机器中可用的COM端口
- delphi webbrowser 如何控制访问远程网页之前 先访问本地页面 访问出错也访问本地页面
- !!在Dephi中如何使用ADO进行多线程后到数据库连接?????
- like 查询小问题
- 一个简单的问题---怎样对TTable中的数据进行倒排序?
- 如何在自定义控件当中加入keydown事件?
- 请问哪里有Delphi 2.0 高级程序设计指南这本书卖?或者有它的源码?求购!!!
- 请问?
定义一个全局类例如 MyForms:TList;
然后在某个unit最下面end.前面写上:
initialization
MyForms:=TList.Create;
然后一个函数:
function RegisterForm(Form:TForm);
begin
MyForms.Add(Form);
end;
function ReturnClsObj(ClsName:String):TForm;
var i:integer;
begin
Result:=nil;
for i:=0 to MyForms.Count -1 do
if CompareText(TForm(MyForms[i]).Name,ClsName)=0 then
begin
Result:=TForm(MyForms[i]);
exit;
end;
end;
你用之前先用RegisterForm注册某个窗体,例如 RegisterForm(Self);
然后你就可以ReturnClsObj来得到该窗体的实例了2。根据你后面的定义“根据这个字符串,生成一个类”:
type TFormClass=class of TForm;
var myInstance:TObject;MyClass:TFormClass;
begin
MyClass:=GetClass('TForm');//得到参考类
myInstance:=MyClass.Create(Application);//生成类
end;