(41)uniGUI for Delphi UniDBGrid 设置可勾选列及存储值和显示值对应关系
作者:互联网
(同一个世界,同一个梦想,交流学习C++Builder and Delphi XE10,传承c++builder and Delphi的魅力!欢迎各地朋友加入我的QQ群484979943,进群密码“BCB”,同时也请将该群号广为宣传,希望能够广集各方高手,共同进步。如需下载开发工具及源代码请加入我的QQ群。)
【阅读倡议】
1、有问题请留言;
2、没问题请点赞;
3、看连载请加群;
4、下源码请加群;
【开发工具】
1、C++Builder and Delphi 10.3.3
2、FMSoft_uniGUI_Complete_Professional_1.70.0.1531(正版)
本人主笔的国内第一本uniGUI教学案例代码已诞生,分为cbuilder和delphi两个版本,买代码送手册,需要的朋友可以加入我的QQ技术交流群484979943给我(群主)留言。资料简介:
https://www.meipian.cn/20b86ayo?share_from=others&user_id=64168117&uuid=a8a75af8c0cc31e6a21b8a79a2b07398&share_depth=1&first_share_uid=64168117&utm_medium=meipian_android&share_user_mpuuid=94b70e99e8b6986c71b270a9883befb2
UniDBGrid有很多“特异功能”,通过简单配置和几行代码就可以实现,本例子基于项目根目录下的SQLITE数据库demo.db的score表讲解uniDBGrid的几个“特异功能”。Score数据表结构如下所示:
1、创建一个项目,如下图所示,添加一个UniDBGrid、一个UniConnection、一个SQLiteUniProvider、一个UniQuery、一个UniDataSource、一个UniDBNavigator;一个UniHiddenPanel,在UniHiddenPanel上添加一个UniEdit、一个UniSpinEdit、一个UniComboBox、两个UniDateTimePicker、四个UniNumberEdit。
2、配置数据库控件的各个属性
控件名称 | 属性 | 取值 | 说明 |
UniDBGrid1 | DataSource | UniDataSource1 | 数据源 |
UniDataSource1 | DataSet | UniQuery1 | 数据集 |
UniQuery1 | Connection | UniConnection1 | 数据库连接 |
UniConnection1 | Database | D:\demo_9_16_d\demo.db | 数据库文件 |
| ProviderName | SQLite | 数据库驱动类型 |
| Connected | TRUE | 是否连接 |
UniQuery1 | SQL | select * from score | SQL查询语句 |
| Active | TRUE | 激活查询语句 |
UniDBNavigator1 | DataSource | UniDataSource1 | 数据源 |
3、打开屏幕左上角Structure的UniDBGrid1控件,右键点击Columns添加十个数据列,点击0~9每个列,将FieldName属性分别设置为score表各个列的列名,将其Title->Caption属性设置为你需要的中文列头,将stu_score1和stu_score2两个列的Width属性设置为120宽。
为UniDBGrid设置可勾选列
有时候希望把数据表的某个字段设置成可勾选式“正/反”逻辑输入,比如stu_sex表的性别列,如果想显示为“男/女”,勾选后对应的数据值为“1/0”或“true/false”,就可以将stu_sex字段的CheckBoxField属性的BooleanFieldOnly设置为True、DisplayValues设置为“男;女”、FieldValues设置为“1;0”。此时score数据表的stu_sex字段需要是逻辑型字段,如果不需要向数据表输入逻辑型数值就可以将BooleanFieldOnly设置为False,此时FieldValues可设置为你想向数据表输入的字符串值。需要注意的是DisplayValues和FieldValues之间的分号应该是英文小写状态下的分号,运行效果如下:
为了显著区别表格“性别”列选择的不同值,可在UniDBGrid的OnDrawColumnCell事件中添加代码实现:
procedure TMainForm.UniDBGrid1DrawColumnCell(Sender: TObject; ACol,
ARow: Integer; Column: TUniDBGridColumn; Attribs: TUniCellAttribs);
begin
if Column.FieldName='stu_sex' then
begin
if Column.Field.AsBoolean then
begin
Attribs.Font.Color:=clGreen;
end
else
begin
Attribs.Font.Color:=clRed;
end;
end;
end;
标签:begin,uniGUI,数据表,Delphi,选列,stu,UniDBGrid,设置 来源: https://blog.csdn.net/martian6125/article/details/110390024