CnPack 开源软件项目 - 实现选项配置管理对话框的一小型框架PreferneceManager 0.1.3
  网站首页 下载中心 每日构建 文档中心 公益基金 开发论坛 关于我们 致谢名单 English


 Google 搜索

内容: 
 最新下载包


 
CnWizards 1.2.4.1095
[2022-07-01]

 
CnVCL 组件包 20220701
[2022-07-01]

 
CVSTracNT 多语言版 V2.0.1_20080601
[2008-06-02]

 
CVSTrac Linux 中文版 V1.2.1_20060112
[2006-01-12]
  最新开发版下载 RSS
  项目时间线 RSS RSS
 项目相关链接

CnPack GitHub 首页
GIT 使用说明
申请加入 CnPack
CnPack 成员名单
CnPack 邮件系统
 网站访问量

今日首页访问: 1223
今日页面流量: 4675
全部首页访问: 4527044
全部页面流量: 17765252
建站日期: 2003-09-01

实现选项配置管理对话框的一小型框架PreferneceManager 0.1.3

CnPack 开源软件项目 2007-08-03 20:29:17

实现选项配置管理对话框的一小型框架PreferneceManager 1.3
2008-01-18升级至0.1.3版本
作者:CnPack开发组 许子健

一、概述
本组件包用于实现对软件中类似“选项”或“配置”功能,分为配置管理器和配置项目两个部分,它们不依赖具体所用界面控件的载体,可以按需定制,因此具有扩展性。目前已经实现了基于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;


相关下载:
PreferenceManager 1.3 源码与示例下载 (已下载 2587 次)

本文已阅读 7176 次
来自: CnPack 开源软件项目

上一主题 | 返回上级下一主题

相关主题:


版权所有(C) 2001-2018 CnPack 开发组 网站编写:Zhou Jinyu