紧急提问:如何把一个字符串转化为类名?(200分)

  • 主题发起人 主题发起人 jacklin
  • 开始时间 开始时间
J

jacklin

Unregistered / Unconfirmed
GUEST, unregistred user!
如有个子窗体的name:='tempForm',然后我输入了该名称,我怎么才能创建该窗体呢?
 
我是还没有create,因为是MDI子窗体。但程序设计已经好了,我是想通过数据库来维护
的功能模块。
 
如果窗体已创建,则可以通过application的枚举来找到,
如果尚未建立,又哪来的Name
 
你在设计时把名字写到数据库中不就行了!
 
可能吗[?][^]
 
我是就把它写到数据库中了,运行时把它也设为菜单里的一个字符变量了。但我怎么引用它
来创建子窗体呢?因为该窗体还没创建,用application.Components[]无法找到。
 
将功能模块编号,然后写一个Case语句就可以了,呵呵
 
NAME只能在设计期有效,运行时不能改呀!
 
这些都有了,但我在想能不能不用对每个不同的子窗体都写一段代码。如:
原本调用tempForm要这样写的:Ttempform.create(self);现在已经有了个变量:
sname:='tempform';//Ttempform的名称。从数据库中读出
这样能否实现呢?
 
这样做

FormClassList: TList;

FormClassList := TList.Create;
FormClassList.Add(TForm2);
FormClassList.Add(TForm3);

for i:=0 to FormClassList.Count-1 do
; if TFormClass(FormClassList).ClassNameIs(Edit1.Text) then
; ; with TFormClass(FormClassList).Create(Self) do
; ; ; ShowModal;
 
可以试试,可总感觉那有点不对!
 
谢谢,这样可以的,虽然不是很理想。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部