如何根据一个字符串,如:’TFrom1’
通过一个方法返回一个类的实例,如:ReturnClsObj(ClsName:string):TForm;
关键问题是,现在不知道怎么样才能根据这个字符串,生成一个类,而这个类的名称就是上面的字符串啊~~
大家帮忙了啊!!!!!多谢
通过一个方法返回一个类的实例,如:ReturnClsObj(ClsName:string):TForm;
关键问题是,现在不知道怎么样才能根据这个字符串,生成一个类,而这个类的名称就是上面的字符串啊~~
大家帮忙了啊!!!!!多谢
解决方案 »
- 怎样写代码?为DBGridEH的第一列加上checkbox复选框,这一列存储的是每条记录的id值,用户可以多选,对多条记录进行批量删除
- 如何根据数据内容调整dbgrid的列宽?
- 如何用Indy的UDP组件发送和接收一个自定义的结构
- HELP!求一个答案!
- I need help,Please! DbGrid问题
- 如何解决DBExpress连接MySQL的问题?
- 高分请教打印功能
- access中的bde的query
- 如何同时删除主表和从表的记录?
- 请问题各位DELPHI高手,如何在DELPHI中调用winzip来进行压缩和解压?
- 请问哪里有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;