社区
Delphi
帖子详情
动态显示窗体
gulf1234
2007-01-22 11:28:55
在我的工程中,有很多的窗体,但是我都没有用“Atuo Create”,我希望在用户点击菜单后,动态加载并显示。由于我的菜单都是通过数据库中的记录来生成的,所以在用户点击菜单时,我只能获取到窗体的名称。
我在发贴前也,看了一些以前的帖子,但是都没有能解决。看看哪位大侠能帮帮我!!!
...全文
446
30
打赏
收藏
动态显示窗体
在我的工程中,有很多的窗体,但是我都没有用“Atuo Create”,我希望在用户点击菜单后,动态加载并显示。由于我的菜单都是通过数据库中的记录来生成的,所以在用户点击菜单时,我只能获取到窗体的名称。 我在发贴前也,看了一些以前的帖子,但是都没有能解决。看看哪位大侠能帮帮我!!!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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)
tabcontrol动态生成选项卡,并添加
窗体
c# tabcontrol动态生成选项卡,并添加
窗体
WPF
窗体
跳转动画 及按钮特效
WPF的
窗体
跳转特效,使用的是Storyboard设置跳转动画, button设置更简单,使用一个dll引用只需更换背景图片来实现鼠标,滑过、点击,之间的转换
一行代码搞定等待进度
窗体
一行代码搞定全部等待、进度.Net的WinForm
窗体
,简单实用,有Demo和实例。请先阅读ReadMe文档
WPF控件,九宫格,自定义
窗体
WPF控件,九宫格,自定义
窗体
,结构比较乱,自己整理下吧
C#Winform界面布局设计(左侧菜单)右侧窗口操作
开发语言C#,.net环境下。C#Winform界面布局设计(左侧菜单)右侧窗口操作。以前做ERP设置的自定义控件。很好用。
Delphi
5,928
社区成员
262,931
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章