系统框架设计问题(80分)

  • 主题发起人 主题发起人 wenqihe
  • 开始时间 开始时间
W

wenqihe

Unregistered / Unconfirmed
GUEST, unregistred user!
在编程中我们也许会遇到很多的比较大的系统,这些系统要求对操作员进行区分
不同的操作员得到的操作菜单是不一样的,而且管理员可以动态的管理各个操作员的权限
经过管理员的修改后,对应的操作员所对应的菜单也就相应的改变了,当然里面的操作肯定
也变了。
像这种系统,大家一般用什么方法来实现
很明显: 菜单是自动生成的,菜单的响应事件的处理方法也是动态的。
菜单的动态生成比较简单,但是菜单的响应事件的处理方法的具体实现可能多种多样
如果利用DLL的话,里面的函数千奇百怪,比较难以处理,如果用Exe文件的话,那么要实现
对应的exe文件的界面是主窗体的子窗体比较困难,而且相互间某些交流可能难以实现
不知道各位在实际的系统编程中如何处理这一问题的??
欢迎发表高见
 
我用的是DLL, DLL要引出一个函数返回值是一个类(注意, 不是实例)
type
ICommand = class(TObject)
public
procedure Execute(Sender: TObject);
virtual;
abstract;
end;

TCommandClass = class of ICommand;
在DLL中
TOpenCommand = class(ICommand)
public
procedure Execute(Sender: TObject);
override;
end;

TOpenCommandClass = class of TOpenCommand;
每一个子类所在的DLL都有相同的引出函数,如
function CommandClass: TCommandClass;
stdcall;
begin
Result := TOpenCommandClass;
end;

在主程序中初始化
Cmd := CommandClass.Create;
//根据不同的权限调用不同的DLL的引出函数
事件处理的
OnClick := Cmd.Execute;
大致的思路就是这样,你可以参考《设计模式》《Delphi6应用开发指南》
 
tseug
thank you very much
i have not 《Delphi6应用开发指南》 can you tell me where to do
wnload it?
 
接受答案了.
 
后退
顶部