如何在运行时列出bpl文件中包含哪些窗体?在dpk包内都窗体单元中,在初始化处有注册窗体类:
initialization
RegisterClass(TfrmAbout);LoadPackage载入包时,可以通过GetClass(窗体类名)取得已经注册的类,现在的问题在于,包非常多,不希望程序已启动就全部载入,影响速度,而是当要呼出制定窗体时,在载入对应包(需要才载入),目前的做法是建一个配置文件来记录窗体类名和包都关系。但这样要手动维护这个配置文件,比较麻烦。所以现在的需求是,能否给你一个bpl文件,程序运行时不载人该bpl文件,就列出这个bpl内有哪些窗体类?这样我就可以程序一运行时就把所有bpl和窗体类名建立一个对应关系,而不需要一个配置文件。
initialization
RegisterClass(TfrmAbout);LoadPackage载入包时,可以通过GetClass(窗体类名)取得已经注册的类,现在的问题在于,包非常多,不希望程序已启动就全部载入,影响速度,而是当要呼出制定窗体时,在载入对应包(需要才载入),目前的做法是建一个配置文件来记录窗体类名和包都关系。但这样要手动维护这个配置文件,比较麻烦。所以现在的需求是,能否给你一个bpl文件,程序运行时不载人该bpl文件,就列出这个bpl内有哪些窗体类?这样我就可以程序一运行时就把所有bpl和窗体类名建立一个对应关系,而不需要一个配置文件。
解决方案 »
- listview显示多表查询结果并保存到Excel中的问题
- 如何不使用DBNavigator向Access数据库中插入数据?
- 求设置一个无边框风格的窗体的WINDOWS消息(此窗体是外部EXE程序)
- 告诉大家一个修改网卡物理地址(MAC地址)的方法
- 简单的控件属性问题!帮忙就给分!
- 对于窗体开发而言,Delphi是不是最好的选择?
- 我买了一张DELPHI6的安装盘没有序列号,有吗?谢谢!
- 关于Socket的问题,一个Socket能够建立两个线程同时Receive和Send吗?
- vb中用什么控件读取txt文件的内容?
- 谁能告诉我 ,在辽宁什么地方用DELPHI,
- TRxRichEdit控件用键盘上下键移动的问题
- MD5 加密 Unicode 的问题
1、不加载就不能列出这个bpl内有哪些窗体类;
2、不需要配置文件也可以读出bpl的的窗口类;
所以需求在于根据需要加载,也就是给你一个窗体类名,要找到对应的包,在加载这个包即可。
1、运行时只知道一个窗体类名的字符串,如“TfrmAbout”,
2、取得这个窗体类所在包的文件名,如“XXX.Bpl”,
3、然后用LoadPackage载入这个包,这时这个包内都所有窗体类都已经注册了,包括“TfrmAbout”
4、最后呼叫出“TfrmAbout”这个窗体这个过程已经实现,但第2步需要一个包和窗体对应关系的配置文件。所以希望摆脱这个配置文件,也能实现上面的功能。