| 资源简介: |
一、概述 本组件包用于实现对软件中类似“选项”或“配置”功能,分为配置管理器和配置项目两个部分,它们不依赖具体所用界面控件的载体,可以按需定制,因此具有扩展性。目前已经实现了基于TFrame的配置项目类。 二、快速指南 01.从IDE新建一个Frame; 02.使用uses引用untTBasePreferenceMgr.pas和untTPreferenceMgr.pas; 03.绘制你的Frame界面; 04.为你的Frame类加上下列Public声明; Procedure Apply; Procedure Revert; Function IsModified: Boolean; 05.在Implementation上方加入下列代码,并替换TYourFrame为在01中新建Frame的类名; {$DEFINE TPL_FRAME_PREFERENCE_ITEM} T_FRAME_UI = TYourFrame; {$INCLUDE 'tplTFramePreferenceItem.pas'} 06.在{$R *.dfm}下方加上下列代码,并替换TYourFrame为在01中新建Frame的类名,然后 根据实际需求定义各项行为(Apply,Revert,IsModified); {$INCLUDE 'tplTFramePreferenceItem.pas'} Procedure TFramePreferenceItem.Apply; Begin TYourFrame(FFrameUI).Apply; End; Function TFramePreferenceItem.IsModified: Boolean; Begin Result := TYourFrame(FFrameUI).IsModified; End; Procedure TFramePreferenceItem.Revert; Begin TYourFrame(FFrameUI).Revert; End; Procedure TFrameItemA.Revert; Begin //加上自己的代码,比如恢复界面为默认设置的样子 End; Procedure TFrameItemA.Apply; Begin //加上自己的代码,比如将设置写进ini或注册表 End; Function TFrameItemA.IsModified: Boolean; Begin //加上自己的代码,比如判断是否界面与默认值一样 End; 07.保存文件; 08.重复01至07,以设计其他的配置项目; 09.设计配置中心的界面; 10.在09的界面单元引用untTPreferenceMgr和01至07产生的所有单元; 11.定义01个TPreferenceMgr类型全局变量; 11.配置管理器的初始化,例如: Procedure TPreferenceForm.FormCreate(Sender: TObject); Begin // var M: TPreferenceMgr; M := TPreferenceMgr.Create; M.Parent := Self.RightPanel; //控制配置项目显示的位置 M.Add(untFrame1.TFramePreferenceItem); //添加配置项目的类 End; 12.配置管理器的销毁,例如; Procedure TPreferenceForm.FormDestroy(Sender: TObject); Begin M.Free; M := Nil; End; 13.调用TPreferenceMgr类型对象的各个方法实现所需功能,例如下面使用一个TreeView 来控制; Procedure TPreferenceForm.StdBtnApplyAllClick(Sender: TObject); Begin M.ApplyAll; End; Procedure TPreferenceForm.StdBtnApplyCurrClick(Sender: TObject); Begin M.ApplyCurrent; End; Procedure TPreferenceForm.StdBtnCancelClick(Sender: TObject); Begin Self.Close; //关闭配置中心窗体 End; Procedure TPreferenceForm.StdBtnDoneClick(Sender: TObject); Begin M.ApplyAll; Self.Close; End; Procedure TPreferenceForm.StdBtnRevertAllClick(Sender: TObject); Begin M.RevertAll; End; Procedure TPreferenceForm.StdBtnRevertCurrClick(Sender: TObject); Begin M.RevertCurrent; End; Procedure TPreferenceForm.WinTrvLeftMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); Begin M.Open(WinTrvLeft.Selected.AbsoluteIndex); //根据序号打开对应配置项目 M.SetAsCurrent(WinTrvLeft.Selected.AbsoluteIndex); //激活显示在界面上 End; |