社区
Delphi
帖子详情
动态显示窗体
gulf1234
2007-01-22 11:28:55
在我的工程中,有很多的窗体,但是我都没有用“Atuo Create”,我希望在用户点击菜单后,动态加载并显示。由于我的菜单都是通过数据库中的记录来生成的,所以在用户点击菜单时,我只能获取到窗体的名称。
我在发贴前也,看了一些以前的帖子,但是都没有能解决。看看哪位大侠能帮帮我!!!
...全文
443
30
打赏
收藏
动态显示窗体
在我的工程中,有很多的窗体,但是我都没有用“Atuo Create”,我希望在用户点击菜单后,动态加载并显示。由于我的菜单都是通过数据库中的记录来生成的,所以在用户点击菜单时,我只能获取到窗体的名称。 我在发贴前也,看了一些以前的帖子,但是都没有能解决。看看哪位大侠能帮帮我!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gulf1234
2007-04-10
打赏
举报
回复
问题尚未解决,还没有按照netfly(支点) 说的去试试呢。
试后如果还不可以,另开贴请教,答谢各位,先把该贴结了,谢谢大家的帮助。
netfly
2007-03-27
打赏
举报
回复
在D中, 系统一般使用CLASSLIST(D7是RegGroups)这个全局变量来保存所有注册的类的类(class of class)
例如在D5中, RegisterClass这个函数,实际就是把你的类ADD到CLASSLIST这个变量(D5里是一个TThreadList). 然后FindClass从这个全局变量中找出你的那个类的类,然后再创建.你的那个问题应该是注册的和读取的应该不是同一个地方,可以调试跟踪一下.如果不想的话,也可以根据这个原理,我们可以自己做一个自己的LIST来自己控制,自己读取(无非就是抄一次VCL的代码),呵呵.
rcyboom
2007-03-26
打赏
举报
回复
把窗体放到dll中,每个dll都实现几个通用函数:
createandshow;
getformname;
getmenuiten;
主程序扫描指定文件夹的所有dll文件,遍历并动态生成菜单。
每个菜单都调用这几个通用函数即可
gulf1234
2007-03-26
打赏
举报
回复
TO netfly(支点) :我好像不是很理解啊?你能说详细点,或者给我一个简单的例子啊?谢谢。
wwwcampus
2007-03-22
打赏
举报
回复
在 Unit2 中加
initialization
RegisterClass(TForm2);
在 Unit1 中
procedure TForm1.Button1Click(Sender: TObject);
var
pc: TPersistentClass;
fc: TFormClass;
f: TForm;
begin
pc := FindClass('TForm2');
fc := TFormClass(pc);
f := fc.Create(Self);
f.Show;
end;
win2003 + d7 调试通过
gulf1234
2007-03-22
打赏
举报
回复
TO starsky2006(星空无限),
谢谢写的回帖,但是按照你的方法,那如果我有很多的窗体的话,是不是要一一列举呢?我现在就是不想一一列举,不想一有新的窗体,就要来更改这个过程。
starsky2006
2007-03-22
打赏
举报
回复
var
LForm: TLForm;
implementation
{$R *.dfm}
function TShowFormClass.CreateAClass(const AClassName: string): TForm;
begin
if AClassName='LForm' then
Result := LForm;
else
Result := nil;
end;
gulf1234
2007-03-22
打赏
举报
回复
自己顶一个
netfly
2007-03-22
打赏
举报
回复
如果你是用模板编程,很可能是你的系统前后有两个放CLASS的CLASSLIST(D5,D7,D6在这个地方都略有不同), 这样最好的方法是一自己定义一个全局的LIST然后自己往这个LIST里进行注册,并从这里来FIND就可以了.
gulf1234
2007-03-22
打赏
举报
回复
各位啊,我测试了一下,wwwcampus(稻草) 、netfly(支点)和hongqi162(失踪的月亮) 说的方法,如果我新建一个工程的话,都是可行的。
但是在我的程序中就是不行,老是报什么类不存在(我已经使用RegisterClass了)。
我用的是模板编程的,所以我想知道这啊会有什么影响啊?
netfly
2007-03-20
打赏
举报
回复
你的类名和你代入的字符串是一样的吗?
gulf1234
2007-03-20
打赏
举报
回复
不是在DLL中的。
TO zaza_bbface(我试着成熟一点~) ,
我在frmMain中已经引用了单元UnitSite(就是frmSite所对应的单元)了啊,不会这两个名字一定要一样的吧。
zaza_bbface
2007-03-20
打赏
举报
回复
但是每次运行的时候都报错,说“Class TfrmSite not found”.
即使我在frmSite模块的最后(.end前面)使用方法
initialization
RegisterClasses(TfrmSite);依然是这样的错误提示啊。
------------
用了RegisterClasses(TfrmSite);肯定可以找到类的,除非你的工程根本没use frmSite单元
netfly
2007-03-20
打赏
举报
回复
你的窗体单元是放在DLL里?
gulf1234
2007-03-20
打赏
举报
回复
同样的错误提示啊!救命啊!!!!!!!!!!!
netfly
2007-03-20
打赏
举报
回复
var
LFormClass : TFormClass;
LForm: TForm;
begin
//LFormClass := TFormClass(FindClass(AClassName)); <---------------已经进行了转换了
//LForm := LFormClass.Create(Application);
LForm := TFormClass(FindClass(AClassName)).Create(Self);
gulf1234
2007-03-20
打赏
举报
回复
谁能帮帮我啊,解决后,我另开贴酬谢啊。
我先设置了一个函数CreateAClass
function TfrmMain.CreateAClass(const AClassName: string): TForm;
var
LFormClass : TFormClass;
LForm: TForm;
begin
LFormClass := TFormClass(FindClass(AClassName));
LForm := LFormClass.Create(Application);
Result := LForm;
end;
然后在BUTTON的事件中调用,
procedure TfrmMain.Button1Click(Sender: TObject);
var
LForm: TForm;
begin
LForm := CreateAClass('TfrmSite');
try
LForm.ShowModal;
finally
LForm.Free;
end;
end;
但是每次运行的时候都报错,说“Class TfrmSite not found”.
即使我在frmSite模块的最后(.end前面)使用方法
initialization
RegisterClasses(TfrmSite);依然是这样的错误提示啊。
各位大哥,快来帮帮忙啊!!!!!!!!!!!!
gulf1234
2007-01-23
打赏
举报
回复
顶
zhu_jiang
2007-01-23
打赏
举报
回复
我看你要实现一个通用灵活的form才行,在配置里面保存好所有界面要素,根据界面名称动态创建才好
creativecn
2007-01-23
打赏
举报
回复
你应该把窗体建好 然后点击按钮利用语句让其显示 否则你建立一个空白的窗体干什么
加载更多回复(10)
C#实现动态等待
窗体
WaitForm
C#实现动态等待
窗体
WaitForm,可以在等待
窗体
上显示主
窗体
的加载信息、进度条等。
Qt实现
窗体
在显示屏旁边自动隐藏/显示
Qt实现
窗体
在显示屏旁边自动隐藏/显示,类似于QQ实现
Python Tkinter
窗体
讲解
Python作为自立门户的语言,除了学习它的基础编程之外,它还提供了
窗体
的学习,这样相对来说,它就完整了,如果大家学习过C#
窗体
实现或者Java,MFC等等吧,再学习它就会简单的多。当然大家也不用担心,即使没学过,...
Delph插件
窗体
Dll和mdi,实现Tabcontrol多页面管理
Delphi实现mdi
窗体
封装到dll中并实现插件管理,动态加载,采用tabcontrol多页面管理
WPF主
窗体
嵌套用户控件可拖动加滚动信息
WPF 主
窗体
嵌套 用户控件 可拖动 ,新闻在
窗体
内动态滚动。
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章