uniGUI试用笔记(十一) ---UNIDBGRID

最近研究了一下UniGUI的TuniDBGrid,记录一下省得忘记了。前端

TuniDBGrid的重要属性包括:ide

一、列—TUniDBGridColumns和TUniDBGridColumnidea

每一个列对象(TUniDBGridColumn)的重要属性包括:spa

  • CheckBoxField : TUniCheckBoxField

列做为CheckBox操做的相关属性orm

属性对象

类型blog

说明排序

AutoPost事件

Boolean图片

当用户点选CheckBox后,改变前端显示并根据该属性决定:

True—当即自动提交到数据集中并刷新前端显示

False—只改变前端显示,当记录滚动时再提交数据集

BooleanFieldOnly

Boolean

是否只针对Boolean字段,

True—只能识别Boolean字段,非Boolean字段将不能显示CheckBox

False—DisplayValues和FieldValues能够针对非Boolean字段进行处理

Enabled

Boolean

是否容许显示CheckBox

DisplayValues/

FieldValues

string

联合决定了CheckBox不一样状态下对应的值,FieldValues存储字段值,DisplayValues存储显示文字,若是空白就表示不显示文字,只显示CheckBox,每一个值经过分号(;)区分,文字显示CheckBox的右侧。以下图:

image

  • DisplayMemo:Boolean

对TMemoField而言,是否显示(Memo)字样,缺省为False

False—不显示字段内容,显示(Memo)字样

True—不显示(Memo)字样,而是直接显示字段内容

  • Filtering : TUniColumnFilter

在列标题下显示过滤编辑框,自动对列数据进行过滤,以下图:

image

参考Demos下的GridFilter例子。要实现该功能,必须:

     A.放一个TUniHiddenPanel控件在窗体上,而后将TUniEdit、TUniComboBox 、TUniDBLookupComboBox等控件放置在这个隐藏的Panel上,以下图:

image

      B.设置每一个列的Filtering,将其Editor属性设置对应的编辑控件

      C. 对编辑控件进行相关属性设置,如TUniDBLookupComboBox须要设置ListSource等

属性

类型

说明

ChangeDelay

Integer

当用户键入字符后,延时进行过滤处理的毫秒数

Editor

TControl

过滤的输入框,按照输入框内容进行过滤。TUniDBLookupComboBox按照KeyField的值进行过滤

Enabled

Boolean

是否容许进行过滤

  • GroupHeader和GroupHeaderSeparator

多栏显示表头,如GroupHeader = a;b;c 时的样式见下图:

image

  • ShowSummary:Boolean

是否显示合计值,与Grid的Summary的属性联合使用。

  • Sortable:Boolean

是否容许进行排序操做。容许排序操做时,在字段名称旁显示排序符号,而且在Menu中的排序菜单是可用的,以下图:

image

  • Editor : TControl;

对该字段进行编辑时,对应的单元采用怎样的控件进行处理,这个功能很是强大,如设置TuniComboBox做为Editor则彻底替代字段Picklist的功能,以下图:

image

  • Memu(TUniColumnMenu)

对列标题下拉显示的菜单进行控制

属性

类型

说明

ColoumnHideable

Boolean

是否容许隐藏字段,缺省True,即容许用户经过勾选隐藏指定的列,以下图:

image

MenuEnabled

Boolean

是否容许显示列的菜单

MenuText

String

该列显示在菜单上的文字,缺省为空,表示显示字段DisplayLabel,不然显示该文字。以下图:

image

  • ImageOptions

当该字段须要显示图片时,联合使用ImageOptions属性和OnFieldImage事件,其中:

属性

类型

说明

Height/Width

Integer

显示图片的大小

Visible

Boolean

是否显示图片,True则触发OnFieldImage事件进行图片处理,如:

procedure TMainForm.UniDBGrid1FieldImage(const Column: TUniDBGridColumn;

const AField: TField; var OutImage: TGraphic; var DoNotDispose: Boolean;

var ATransparent: TUniTransparentOption);

begin

if SameText(AField.FieldName, 'gender') then

begin

// 代码处理图片

DoNotDispose := True;

// 根据字段值返回图片

if AField.AsString = 'male' then

OutImage := UniImage1.Picture.Graphic

else if AField.AsString = 'female' then

OutImage := UniImage2.Picture.Graphic;

end;

end;

该方法可让列显示某项图片按钮,如:

image

相关文章
相关标签/搜索