📄 moduleintf.pas
字号:
unit ModuleIntf;
{------------------------------------------------------------------------------}
{
{ --> ModuleIntf.pas
{ 本单元定义模块与控制台的交互接口。
{ 对于控制台:
{ .通过调用getProcAddress(dllInst, GetModIntfFuncName)来取得这个接口
{
{ 对于模块(DLL)
{ .工程文件中的Exports部分需要定义: getModInterface;
{ .需要实现IModuleIntf接口并在以上定义的函数中输出
{
{
{ 注:. 模块中如果不需要某函数功能,则用一个空过程即可,但必须定义
{ . ExecuteCommand用于特殊情况,即需要与模块进行信息交换时候用。
{
{ @version : 1.1
{ @history
{ 1.0 : 2005-03-25,final
{ 1.1 : 2005-03-25, Modify.
{ 修改原因 : 思路正确,但有点过度设计,丧失了易用性,这种
{ 形式使得需要写新控件来实现接口。不利于R&D开发。
{ 修改方向 : 使用VCL中已存在的控件作为参数,无需实现接口
{
{------------------------------------------------------------------------------}
{.$DEFINE VER10}
{$DEFINE VER11}
{$IFDEF VER11}
{$UNDEF VER10}
{$ENDIF}
{$IFDEF VER10}
{$Message Warn '使用1.0版需要自己实现接口。'}
{$ENDIF}
interface
uses Classes
{$IFDEF VER11}
,ExtCtrls
{$ENDIF}
,XMLDOM
;
type
{ 模块实例状态 }
TModuleInstanceState = (msSingle, msMulti, msDontFree);
{ 提供给模块用于向控制台进行提示信息输出 }
IMessageAreaIntf = interface
{ 显示提示信息 }
procedure ShowMessage(Msg : String);
end;
{$IFDEF VER10}
{ 用于模块界面集成到控制台的接口 }
IUIControlIntf = interface
{ 指定当前控件的父容器 }
procedure setParent(parent : TComponent);
end;
{$ENDIF}
{ 模块接口 }
IModuleIntf = interface
{-- UI部分 ---------------------------------------------------------------}
{ 取得工作区域 }
function getWorkArea : {$IFDEF VER10}IUIControlIntf{$ELSE}TPanel{$ENDIF};
{ 取得工具栏区域 }
function getToolArea : {$IFDEF VER10}IUIControlIntf{$ELSE}TPanel{$ENDIF};
{ 设置消息提示用的控件 }
procedure setMessageArea(IArea : IMessageAreaIntf);
{-- Functions ------------------------------------------------------------}
{ 取得模块名称 }
function getModuleName: String;
{ 设置模块需要使用的参数 }
procedure setParamToModule(paramName, value : String);
{ 取得实例状态:单,多,不允许释放 }{<<---:: 控制不需要由DLL实现,而是由控制台的ModuleManager实现 }
function getInstanceState: TModuleInstanceState ;
{- 其他函数无法解决时使用此函数 -}
function ExecuteCommand(Command : String) : String;
function GetRoleId(FileName: DOMString;UserId: String): TStrings; //取得用户的相应角色
function GetReadPermission(FileName: DOMString;RoleId: String): TStrings; //取得角色的可读权限
function GetWritePermission(FileName: DOMString;RoleId: String): TStrings; //取得角色的可写权限
end;
{- 接口函数定义 -}
TGetModInterfaceFunc = function : IModuleIntf; stdcall;
const
GetModIntfFuncName = 'getModInterface';
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -