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

TuniDBGrid的重要属性包括:

1、列—TUniDBGridColumns和TUniDBGridColumn

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

  • CheckBoxField : TUniCheckBoxField

列作为CheckBox操作的相关属性

属性

类型

说明

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的右侧。如下图:

  • DisplayMemo:Boolean

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

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

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

  • Filtering : TUniColumnFilter

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

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

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

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

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

属性

类型

说明

ChangeDelay

Integer

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

Editor

TControl

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

Enabled

Boolean

是否允许进行过滤

  • GroupHeader和GroupHeaderSeparator

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

  • ShowSummary:Boolean

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

  • Sortable:Boolean

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

  • Editor : TControl;

对该字段进行编辑时,对应的单元采用怎样的控件进行处理,这个功能非常强大,如设置TuniComboBox作为Editor则完全替代字段Picklist的功能,如下图:

  • Memu(TUniColumnMenu)

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

属性

类型

说明

ColoumnHideable

Boolean

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

MenuEnabled

Boolean

是否允许显示列的菜单

MenuText

String

该列显示在菜单上的文字,缺省为空,表示显示字段DisplayLabel,否则显示该文字。如下图:

  • 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;

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

转载于:https://www.cnblogs.com/ChinaEHR/p/4275122.html

uniGUI试用笔记(十一)相关推荐

  1. uniGUI试用笔记(一)

    uniGUI试用笔记(一) 通过向导创建一个uniGUI应用服务器,工程中有三个文件: TUniServerModule = class(TUniGUIServerModule)TUniMainMod ...

  2. uniGUI试用笔记(二)

    前几天做的demo今天启动后,浏览器打开页面后死活不显示窗体,找了半天原因才发现是360浏览器启动了兼容模式,改成极速模式后就正常了.有点晕.... 今天简单测试了TUniGUIServerModul ...

  3. uniGUI试用笔记(四)

    uniGUI下有专用的登录窗体类:TUniLoginForm,该类属于AppForm,构建代码为: function frmWebLogin: TfrmWebLogin; begin Result : ...

  4. Apache Nutch 1.3 学习笔记十一(页面评分机制 OPIC)

    1. Nutch 1.3 的页面评分机制 Nutch1.3目前默认还是使用OPIC作为其网页分数算法,但其之后,已经引入了PageRank-like算法,以弥补OPIC算法的不足,目前OPIC算法还是 ...

  5. 吴恩达《机器学习》学习笔记十一——应用机器学习的建议

    吴恩达<机器学习>学习笔记十一--应用机器学习的建议 一.训练完模型后下一步要做什么 二.评估算法与模型选择 1.训练集与测试集 2.训练/测试步骤 3.模型选择 4.数据集新的划分--验 ...

  6. 吴恩达《机器学习》学习笔记十一——神经网络代码

    吴恩达<机器学习>学习笔记十一--神经网络代码 数据准备 神经网络结构与代价函数· 初始化设置 反向传播算法 训练网络与验证 课程链接:https://www.bilibili.com/v ...

  7. Windows Embedded Compact 7 试用笔记(3)

    这篇稿子,距离上一篇快一个月了,如此难产的原因,一个是最近项目比较忙,另外一个是我在试用中遇到一个难题,一直希望解决了再开始写,可惜,到现在这个问题也没找到解决办法,最后还是决定先写一点再说吧. 在一 ...

  8. ROS学习笔记十一:ROS中数据的记录与重放

    ROS学习笔记十一:ROS中数据的记录与重放 本节主要介绍如何记录一个正在运行的ROS系统中的数据,然后在一个运行的系统中根据记录文件重新产生和记录时类似的运动情况.本例子还是以小海龟例程为例. 记录 ...

  9. 《C++游戏开发》笔记十一 平滑动画:不再颤抖的小雪花

    本系列文章由七十一雾央编写,转载请注明出处. http://blog.csdn.net/u011371356/article/details/9430645 作者:七十一雾央 新浪微博:http:// ...

最新文章

  1. free崩溃原因2021
  2. Arduino/Microduino与OneNet平台及web服务器端的交互
  3. 日期减三个月oracle_Oracle如何对日期时间进行加减操作呢?
  4. (14)Verilog数据类型-基本语法(二)(第3天)
  5. IDEA : IDEA好用的插件集锦
  6. Java 编译,运行错误之 java.lang.UnsupportedClassVersionError: Bad version n umber in .class file
  7. 1加6投屏_1加6投屏_6月的早餐,1杯牛奶加燕麦,营养健康又美味,饱腹感很强...
  8. 数据挖掘——数据预处理
  9. 一个函数中写多少行代码比较合适呢?
  10. 一个80后独立开发者
  11. Mysql清理数据库中的重复脏数据
  12. java 毫秒数一天_java用毫秒数做日期计算的一个踩坑记录
  13. php车牌识别,跨平台车牌识别应用 Light-LPR
  14. Win10 C盘清理的技巧,将C盘中除Windows外的所有系统文件夹移到C盘之外,节约大部分C盘空间
  15. MBSE系统工程是什么
  16. height:100%和height:100vh的区别
  17. 不是不给你,而是你承受不住
  18. MLAPP(翻译)—第一章
  19. Mybatis动态传入order by
  20. 替换XP的系统字体为Vista的Segoe UI字体的较完美方法

热门文章

  1. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了!
  2. 花5分钟过一遍jar包和war包的区别,以后都不会再迷茫
  3. 两个线程如何交替执行,一个输出偶数一个输出奇数?
  4. 一次 Young GC 的优化实践
  5. 面试必备:30 个 Java 集合面试问题及答案
  6. 分解和合并:Java 也擅长轻松的并行编程!
  7. 青少年蓝桥杯_2020_steam考试_中级组_第五题
  8. [Ljava.lang.Object; cannot be cast to com.gxuwz.check.entity.SysClasses
  9. css html 属性区别是什么,css常见属性
  10. mysql数据库内NOT NULL_浅谈为什么Mysql数据库尽量避免NULL