您的位置:首页 > 产品设计 > UI/UE

TValueListEditor 控件使用方法

2013-12-02 12:49 471 查看
TValueListEditor 控件使用方法
CST 2005-07-19
 
 
1 文档目的
1.1 写作目的
本文简单介绍了TvalueListEditor控件的基本使用方法。可以使用该控件实现类似DELPHI中OBJECT 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 导入导出
TST
4000
RING对象可以将数据导出,函数为:
SaveToFile和LoadFromFile
 
 
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 下拉列表
先设置某项的ItemProps为esPickList,然后将一个TstringList对象赋值给ItemProps的PickList成员。该StringList将成为下拉列表中的选项内容。
ItemProps[I].EditStype:=esPickList;
ItemProps[i].PickList:=TStringList_Object;
其中参数I可以是KEY(STR)也可以是INDEX(INTEGER)。
 
4.2.2 普通编辑方式
使用Input Mask
ItemProps[I].EditStype:=esSimple;
ItemProps[i].Mask:=StrMaskCharacters;
MASK串的相应功能可以参考HELP。
 
4.2.3 使用弹出编辑器
ItemProps[i].EditStyle:=esEllipsis;
用户按下[…]按钮后会触发TvalueListEditor的OnEditButtonClick事件。我们可以在此前的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中可以展开的项目。
 
http://blog.csdn.net/mrtechno/article/details/429809
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: