首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Form名保存在字段Fname中,请教怎么调用

2012-02-15 
Form名保存在字段Fname中,请问如何调用?我是将FORM的名称保存在数据库里的,现在我在当前单位引用了其单元,

Form名保存在字段Fname中,请问如何调用?
我是将FORM的名称保存在数据库里的,现在我在当前单位引用了其单元,
但为什么我用强制转换其为TFormClass时,确出错吗?
如何请...请问...

//显示窗体函数
function ExecuteForm(AFormClass:TFormClass):Boolean;Overload;
begin
  Screen.Cursor:= crHourGlass;
  with AFormClass.Create(Application) do
  begin
  Screen.Cursor:= crDefault;
  Position:=poScreenCenter;
  ShowModal;
  end;
end;
 
...
LabelFName:=VarToStr(FieldValues['FName']);
   
//ExecuteForm(TDateWinForm);//可以调用的Form
ExecuteForm(TFormClass(LabelFName));//为什么这里会调用失败
...


[解决办法]
LabelFName是不是TFormClass的同类或子类
[解决办法]
留个爪子,以后来翻
[解决办法]
貌似曾经在C++Builder版曾经出现过类似的问题,也有人回答过。
不过使用对象的名称,这个是没有办法的,除非你从Application当中去枚举,并且还需要这个对象曾经已经存在,并且还需要保证就是你所需要的,因为任何对象都可以具备你所说的名称。一个人可以叫小黄,一条狗也可以叫小黄,一头小牛也同样可以。
但是换做是类型名,就又有点不一样。而人们所能做的也就只是将类名称映射为具体的类,然后再去创建对象,估计这才是楼主所需要的。详见:Creating a Delphi Form from a String

热点排行