TValueListEditor 控件使用方法

转载 2013年12月02日 12:49:38

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 导入导出

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 下拉列表

先设置某项的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

MFC中常用控件使用方法总结

1、提示框操作: INT_PTR nRes;         nRes = MessageBox(_T("是否需要进行数据擦除?"), _T("数据擦除"),MB_YESNOCANCEL);   ...
  • mytt2013
  • mytt2013
  • 2016年10月08日 14:25
  • 951

Cell控件使用感觉1

最近一直在做项目,是Web方式的。其中一个比较变态要求就是报表模块了。关键是要求业务人员自己能够设计自定义报表。开始想了很多,用OWC,用Fomula One等等。。后来发现中国式报表打印问题难以解决...
  • fengxinwei
  • fengxinwei
  • 2007年02月27日 12:37
  • 950

ACTIVEX控件的使用方法

今天把写好的程序放到其他机器上执行,出现了程序不断崩溃的问题,无奈安装了VS2010 调试源代码,发现是由于程序中有个对象是ACTIVEX控件导入的,所以需要不把原机器上的ACTIVEX控件...
  • h315444352
  • h315444352
  • 2014年03月22日 17:04
  • 285

Cell控件使用感受2

  缺点:a)         没有采用OOP技术在基于Cell的开发过程中,所有方法的调用基本上都是基于Cell插件对象来完成,大部分都是类似于函数的方法,没有提供丰富的对象模型和对象层次,有中“眉...
  • fengxinwei
  • fengxinwei
  • 2007年02月27日 15:44
  • 993

NeatUpload使用方法

因为要做一个大文件上传的功能,所以搜索了下。找到一个控件NeatUpload 而且这个空间是开源的 官网为http://www.brettle.com/neatupload 于是到官网去下了控件。它里...
  • leejin_521
  • leejin_521
  • 2011年11月04日 11:31
  • 325

vb控件操作文件

代码如下: Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub Drive1_Change() Dir1...
  • hws1058648831a
  • hws1058648831a
  • 2013年06月08日 11:34
  • 410

android 步骤控件的使用

有的时候我们做Android开发会用到表示步骤的需求,这时候github给我们提供了一个很好地表示步骤的组件,使用她只需要4步就可以完成了。 项目地址https://github.com/anton...
  • zhaoliang092011
  • zhaoliang092011
  • 2015年07月06日 17:17
  • 2540

UI各种小控件的使用方法

今天给大家列举出来UI中的一些小控件的使用方法,方便大的学习与使用 一些方法和属性我们可以查看API文档,不必将每个控件的功能都记住, 因为在使用的过程中,我们可以查看API文档,方便使用,我们只...
  • u012701023
  • u012701023
  • 2015年08月06日 11:18
  • 1155

对C#Chart控件使用整理

前一篇博客C#char控件的使用心得简述一个使用chart控件的例子此处详细整理一下chart控件的使用。 要使用好Chart控件我们先得明确它的结构。如下图所示:(只画出了大概结构,更多的细节会...
  • qq_32250495
  • qq_32250495
  • 2017年04月20日 12:14
  • 4654

Android常用控件之EditText

EditText1.监听器addTextChangedListener :文本变化观察者 setOnEditorActionListener: 键盘回车事件2.常用属性 android:passw...
  • xfhy_
  • xfhy_
  • 2017年04月27日 08:12
  • 259
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:TValueListEditor 控件使用方法
举报原因:
原因补充:

(最多只允许输入30个字)