中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档 | 网通镜像
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Delphi > 综合文章
TValueListEditor 控件使用方法
作者:未知 时间:2005-07-27 22:03 出处:CSDN 责编:chinaitpower
              摘要:TValueListEditor 控件使用方法

TValueListEditor 控件使用方法

CST 2005-07-19

 

 

1 文档目的

1.1 写作目的

本文简单介绍了TvalueListEditor控件的基本使用方法。可以使用该控件实现类似DELPHIOBJECT INSPECTOR的功能。

 

1.2 备注

下文所有vle为一个TvalueListEditor对象。

 

 

2 简单操作

操作

代码

添加个属性编辑

 

InsertRow(Field,Value,Append);

 

删除一个属性

 

DeleteRow(RowIndex);

 

统计属性个数

 

RowCount;

 

获得激活的属性INDEX

 

Row

 

定位

根据KEYSTR定位,找到后的位置保存在INDEX

FindRow(KeyStr,Index);

 

 

获得KEY的内容字符串

 

skey:=vle.Keys[vle.row];

 

修改/获得VALUE的内容字符串

 

vle.Values[key]:=txtvalue.Text;

 

属性值只读

Vle.ItemProp[I].ReadOnly:=True;

 

 

 

3 数据绑定形式

3.1 数据存储格式

TvalueListEditor的数据实体是保存在TvalueListEditor对象的Strings成员中,Strings成员是一个Tstring类型对象,通常以TstringList实现。

TstringList中每个string必须以如下形式存储:

KeyStr=ValueStr

如果等号没有找到,整个string会被作为Value处理,此时Key为空。

修改GRID内容后,会影响到STRINGS的数据。

 

3.2 导入导出

TSTRING对象可以将数据导出,函数为:

SaveToFileLoadFromFile

 

 

4 编辑样式设置

4.1 KEY字段的样式

KEY字段(属性名称)是4种显示样式的组合。

样式

介绍

KeyEdit

KEY列的内容也可以由用户修改

KeyAdd

用户可以添加一个属性

INS键或者在最后条按DOWN

必须和KEYEDIT配合使用

KeyDelete

用户可以删除一个属性

DEL键(未实现)

KeyUnique

禁止创建重复KEY的属性

 

vle.KeyOptions:=[keyUnique, keyEdit, keyAdd] ;

建议使用keyUnique样式,禁止创建重名的属性,便于根据KEY定位到值。

当创建重名属性时会raise一个Exception

 

4.2 项目编辑方式

ItemProps.EditStyle属性决定了编辑的样式:普通,下拉列表,弹出窗口。

esSimple, esEllipsis, esPickList

 

4.2.1 下拉列表

先设置某项的ItemPropsesPickList,然后将一个TstringList对象赋值给ItemPropsPickList成员。该StringList将成为下拉列表中的选项内容。

ItemProps[I].EditStype:=esPickList;

ItemProps[i].PickList:=TStringList_Object;

其中参数I可以是KEY(STR)也可以是INDEXINTEGER)。

 

4.2.2 普通编辑方式

使用Input Mask

ItemProps[I].EditStype:=esSimple;

ItemProps[i].Mask:=StrMaskCharacters;

MASK串的相应功能可以参考HELP

 

4.2.3 使用弹出编辑器

ItemProps[i].EditStyle:=esEllipsis;

用户按下[…]按钮后会触发TvalueListEditorOnEditButtonClick事件。我们可以在此前的OnClick时间中记录选中的行号:

strGlobalSelKey:=vle.Key(vle.Row);

 

在事件OnEditButtonClick 中判断要打开的编辑窗口。为VLE.STRING每个STRING维护一个TSTRINGLIST,记录编辑样式和弹出窗口ID

1.        根据SWITCH判断要打开的编辑窗口

2.        将激活的KEY传递给编辑窗口

3.        编辑窗口完成编辑后将VLE.VALUE(KEY):=EditValue;保存返回。

 

(in FormMain Unit)

......

    with FormEdit do

    begin

        key:=FormMain.skey;

        Caption:='edit: '+skey ;

        ShowModal ;

    end;

......

 

(in FormEditing Unit)

......

    formmain.vle.Values[key]:=txtvalue.Text;

    self.Close;

......

 

 

5 可能会需要用到的一些类型转换函数

l         StrToBool

l         StrToDate/StrToDateTime

l         StrToFloat

l         StrToIntDef

 

 

6 小结

本文参考的DELPHI 6的帮助文档,并简单描述了TVALUELISTEDITOR的使用方法,研究此控件是为了在一个DELPHI项目中实现自定义控件的动态编辑。只要对该控件进行一层封装就可以被自定义的组件所调用。没有实现的功能为DELPHI中可以展开的项目。

 



可以到我的YAHOO公文包下载本文档的示例。

http://cn.briefcase.yahoo.com/iamcst

 

欢迎也很感谢大家给我提出宝贵意见。


关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有