首页 delphi dbgrid 下拉列表和选择框

delphi dbgrid 下拉列表和选择框

举报
开通vip

delphi dbgrid 下拉列表和选择框delphi dbgrid 下拉列表和选择框 DBgrid 第一列加入CheckBox,点击列头 全选/全消 分类: Delphi2012-06-18 15:35 3595人阅读 评论(0) 收藏 举报 integersqlserver数据库button 真对sqlserver数据说明(其他数据库没有试过): 在数据库对应的表中加入 bit 列验证是否被选中 然后dbgrid第一列的filedname是bit列 在DBgrid的onDrawColumnCell事件中写: procedure DBGr...

delphi dbgrid 下拉列表和选择框
delphi dbgrid 下拉列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 和选择框 DBgrid 第一列加入CheckBox,点击列头 全选/全消 分类: Delphi2012-06-18 15:35 3595人阅读 评论(0) 收藏 举报 integersqlserver数据库button 真对sqlserver数据说明(其他数据库没有试过): 在数据库对应的表中加入 bit 列验证是否被选中 然后dbgrid第一列的filedname是bit列 在DBgrid的onDrawColumnCell事件中写: procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); const CtrlState: array[Boolean] of Integer = (DFCS_BUTTONCHECK, DFCS_BUTTONCHECK or DFCS_CHECKED); begin if column.Field.DataType=ftboolean then begin DBGrid1.Canvas.FillRect(rect); drawframecontrol(DBGrid1.Canvas.Handle,rect,dfc_button,ctrlstate[column.Field.asboolean]); end; end; 上方事件写完后会在第一行第一列出现复选框 在dbgrid的oncellclick事件中写,目的就是实现单击时 复选框被选 中 procedure TcgDaohuodj.DBGrid1CellClick(Column: TColumn); begin if DBGrid1.SelectedField.DataType=ftboolean then begin DBGrid1.SelectedField.DataSet.Edit; DBGrid1.SelectedField.AsBoolean:=not DBGrid3.SelectedField.AsBoolean; DBGrid1.SelectedField.DataSet.Post; end; end; 在dbgrid的ontitileclick事件中写如下代码,目的是点击bit列是实现全 选和全消 procedure DBGrid1TitleClick(Column: TColumn); var i:integer; begin if column.Index=0 then begin //验证是否第一列 adoquery1.First; //游标回滚 DBGrid1.SelectedRows.CurrentRowSelected:=true; //第一行被选中 if trim(column.Title.Caption)='全选' then begin for i:=0 to dbgrid1.DataSource.DataSet.RecordCount-1 do begin dbgrid1.Fields[0].DataSet.edit; dbgrid1.Fields[0].AsBoolean:=true; dbgrid1.Fields[0].DataSet.post; dbgrid1.datasource.dataset.next; end; column.Title.Caption:='全消'; end else begin for i:=0 to dbgrid1.DataSource.DataSet.RecordCount-1 do begin dbgrid1.Fields[0].DataSet.edit; dbgrid1.Fields[0].AsBoolean:=false; dbgrid1.Fields[0].DataSet.post; dbgrid1.datasource.dataset.next; end; column.Title.Caption:='全选'; end; adoquery1.First; //游标回滚 DBGrid1.SelectedRows.CurrentRowSelected:=true; //选中第一行 end; end; 效果如图 Delphi的DBGrid的下拉列表 转 (2011-07-02 04:32:25) 转载? 标签: 杂谈 以下是在用 Delphi 开发数据库应用系统时,利用数据网格DBGrid 输入数据时,有些字段只允许某几个固定的字符串,像档案案卷的保管期限,只有“永久”、“长期”和“短期”三种,可否从一个下拉列表中进行选择,从而方便输入和避免输入错误呢,还有一些字段,例如职工信息库中的单位编号(在另外的单位库中保存着单位的详细信息),在输入和显示职工数据时,能否不对单位编号进行操作,而代之于更加直观的单位库中的单位名称呢,答案是肯定的,Delphi 的数据网格控件 DBGrid,支持下拉列表和查找字段的编程,而且,编程的过程都是可视化的,不需要写一行语句。 一、DBGrid 中的下拉列表 在 DBGrid 网格中实现下拉列表,设置好 DBGrid 中该字段的 PickList 字符串列表、初始的序号值 DropDownRows 即可。以职工信息库中的籍贯字段(字符串类型)为例,具体 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 步骤如下: 1、在窗体上放置Table1、DataSource1、DBGrid1、DBNavigator1 等控件对象,按下表设置各个对象的属性: --------------------------------------- 对象 属性 设定值 --------------------------------------- Table1 DataBase sy1 Tablezgk.dbf //职工信息库 DataSource1DataSetTable1 DbGrid1DataSource DataSource1 DBNavigator1 DataSource Datasource1 ------------------------------------------- 2、双击Table1, 在弹出的Form1.Table1 窗口中,用右键弹出快捷菜单,单击Add Fields 菜单项;选择所有的字段后,按OK 按钮。 3、修改第2 步新增字段的 DisplayLabel 属性。以 Table1ZGBH 字段为例,在 Object Inspector 窗口中选择 Table1ZGBH, 修改属性 DisplayLabel= 职工编号,其余字段类似。 4、双击 DBGrid1, 在弹出的 Editing DBGrid1.Columns 窗口中,单击 Add all Fields 按钮,增加Table1 的所有字段。 5、在 Editing DBGrid1.Columns 窗口,选择 jg 这一行,切换到 Object Inspector 窗口,修改它的 PickList.Strings 为“湖北枝江市(换行)北京市(换行)河南平顶山市(换行)浙江德清市” 6、在 Form1.Oncreate 事件中写入语句: Table1.Open; 7、F9 运行,用鼠标点击某个记录的籍贯字段,右边即出现一个按钮,点击这个按钮,可出现一个下拉列表,包含第5 步中输入的四行字符串,可用鼠标进行选择。当然也可以自行输入一个并不属下拉列表中的字符串。 二、DBGrid 中的查找字段 所谓查找字段 (LookUp Field),即 DBGrid 中的某个关键字段的数值来源于另外一个数据库的相应字段。运用查找字段技术,不仅可以有效的避免输入错误,而且 DBGrid 的显示方式更为灵活,可以不显示关键字段,而显示源数据库中相对应的另外一个字段的数据。 ---- 例如,我们在 DBGrid 中显示和编辑职工信息,包括职工编号、职工姓名、籍贯、所在单位编号,而单位编号来源于另一个数据库表格——单位库,称“单位编号”为关键字段。如果我们直接显示和编辑单位编号的话,将会面对1、2、3 等非常不直观的数字,编辑时极易出错。但是如果显示和编辑的是单位库中对应的单位名称话,将非常直观。这就是DBGrid 的所支持的查找字段带来的好处。 实现DBGrid 的查找字段同样不需要任何语句,具体设计步骤如下: 1、在窗体上放置 Table1、Table2、DataSource1、DBGrid1、DBNavigator1 等控件对象,按下表设置各个对象的属性: --------------------------------------- 对象 属性 设定值 --------------------------------------- Table1 DataBase sy1 Tablezgk.dbf //职工信息库 Table2 DataBase sy1 Tabledwk.dbf //单位信息库 DataSource1DataSetTable1 DbGrid1DataSource DataSource1 DBNavigator1 DataSource Datasource1 ------------------------------------------ 2、双击 Table1, 在弹出的 Form1.Table1 窗口中,用右键弹出快捷菜单,单击 Add Fields 菜单项;选择所有的字段后,按OK 按钮。 3、修改第2 步新增字段的 DisplayLabel 属性。以 Table1ZGBH 字段为例,在 Object Inspector 窗口中选择 Table1ZGBH, 修改属性 DisplayLabel= 职工编号,其余字段类似。 4、设置 Table1DWBH.Visible=False。 5、在 Form1.Table1 窗口,用右键弹出快捷菜单,单击 New Field 菜单项,新增一个查找字段DWMC,在弹出的窗口设置相应的属性, 按 OK 按钮确认;在 Object Inspector 窗口,设置 Table1DWMC.DisplayLabel= 单位名称。 6、在 Form1.Oncreate 事件中写入语句: Table1.Open; 7、按 F9 运行,当光标移至某个记录的单位名称字段时,用鼠标点击该字段,即出现一个下拉列表,点击右边的下箭头,可在下拉列表中进行选择。在这里可以看出,下拉列表的内容来自于单位信息库,并且不能输入其他内容。 三、DBGrid 中的下拉列表和查找字段的区别 虽然 DBGrid 中的下拉列表和查找字段,都是以下拉列表的形式出现的,但两者有很大的差别。 1、用 PickList 属性设置的下拉列表,它的数据是手工输入的,虽然也可以在程序中修改,但动态特性显然不如直接由另外数据库表格提取数据的查找字段。 2、用 PickList 属性设置的下拉列表,允许输入不属于下拉列表中的数据,但查找字段中只能输入源数据库中关键字段中的数据,这样更能保证数据的完整性。 3、用 PickList 属性设置的下拉列表设计较为简单。 合理的布局,绚丽的样式,谈谈Winform程序的界面设计 从事Winform开发很多年了,由于项目的需要,设计过各种各样的界面效果。一般来说,运用传统的界面控件元素,合理设计布局,能够设计出比较中规中矩的 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 界面;利用一些换肤的控件或者部分界面组件,能够设计出相对好看一些的界面效果,如以前很盛行的ActiveSkin、IrisSkin和DotNetSkin等,这些能够对传统的界面元素进行换肤,确实比标准灰色的界面控件好看了很多。不过随着界面控件的组件发展,目前一般倾向于是用较为大型的控件组,他们除了提供设计得体的界面控件外,还提供了非常多种绚丽多彩的界面样式供选择,如DotNetBar、netadvantage、DevExpress等大型界面控件组。 无论界面设计如何变化,一般基本原则都是为客户提供直观、易用、体验效果较好的界面效果哦,从Office的发展历程我们也可以看到整体的界面效果趋向,从开始的标准控件到目前的Ribbon窗体,从单色调变化到绚丽多彩的界面样式,都给我们提供很好的界面设计参考,大型的界面组件也是模仿这一趋势。言归正传,我们来谈谈详细一点的东西,目前我趋向于采用一种基于Ribbon样式的界面,以及一种基于传统界面结合OutLook样式的界面设计。 一、基于Ribbon样式的界面 以上的界面样式,是一种比较大气、符合Office界面效果的界面布局,通过把不同的功能块集中在不同的面板上显示,确实简洁、美观很多,本文不重复介绍该界面效果的优劣,我们主要来集中看看下面的另外一种界面效果。 二、基于OutLook样式的界面设计 其实OutLook样式很早就有,也可以在很多公开的控件组中看到,如果仅仅是追求部分的OutLook界面效果,而不是整体性的 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,那么CodeProject上的这款开源Outlook组件,估计是其中的佼佼者 ( ation-Pane-Control)。不过由于需求的是整体性效果,而且还要考虑更多控件界面样式的一致性及美观性,因此我们还是基于DevExpress界面组来设计这样的OutLook界面效果,会显得更加美观大方一点。界面效果如下所示。 以上通过把一个系统很多相关的功能模块放到一颗树上进行分类展示,对于一个比较复杂的人力资源管理系统或者其他复杂功能的系统,也是一个比较合理的布局方式,另外OutLook工具条还是可以隐藏起来,节省右边多文档界面的数据展示空间,这样整体还是比较合理及美观的。其中右边的布局,还可以通过SplitContainer方式把它分成多个模块,然后客户想哪个数据显示面板大一点,拖动一下就可以了,这样不至于数据比较多的时候,导致显示布局不好的情况。下面我们来介绍下如何实现以上的界面布局效果。 1、创建一个基于DevExpress.XtraEditors.XtraForm基类的窗体。如下代码所示 public partial class MainForm : DevExpress.XtraEditors.XtraForm { public MainForm() { InitializeComponent(); } } 2、在界面设计中,在DevExpress工具箱Navigation & Layout里面拖动添加一个BarManager控件到窗体中,并删除默认的工具栏Tools,并添加一些菜单项和状态条数据。如下所示。 3、添加PanelControl和NavBarControl,添加一些测试功能按钮。 由于我们需要使用MDI多文档界面效果,因此先设置Mainform的IsMdiContainer属性为True。 然后添加一个PanelControl,设置其Dock为Top布局,为该控件ContentImage设置一个背景图片(事先用,,设计好,保存为png格式即可),添加几个小Lable,设置其的图片和文字。 最后拖入一个NavBarControl控件到界面中,设置其Dock为Left布局,通过控件的右键菜单上的“Run Designer"进入设计界面,先随便添加一些NavBarGroup和NavBarItem项目,粗略设置得到界面效果如下所示。 注意,在NavBarcontrol里面,默认是没有一个Panel可以添加一些特殊的控件,如树、按钮等,默认只有BarItem对象可以添加进入。为了在一个NavBarGroup里面添加这样的控件,需要修改NavBarGroup的属性才行,如下所示。 4、添加DockManager和XtraTabbedMdiManager 控件实现多文档布局,其最终将以Tab方式进行展现。 继续在上面的窗体中添加DockManager控件和XTraTabbedMdiManager控件,这两个控件可以实现在右边以Tab方式展现多文档布局,这样对用户操作来说,可以一次性打开多个窗体进行操作,方便很多,也必将美观,是一种常见的布局展现。为了在窗体激活的时候,在顶部显示关闭按钮,其他的不显示,那么需要设置XTraTabbedMdiManager控件的ClosePageButtonShowMode=InActiveTabPageHeader即可实现了。最终Tab效果如下所示。 以上就是我设计的一个系统界面的具体操作 流程 快递问题件怎么处理流程河南自建厂房流程下载关于规范招聘需求审批流程制作流程表下载邮件下载流程设计 ,其实很多时候,介绍总是很快,摸索总是很慢,这个就是知识积累的效率提升。当然,要设计好一个系统界面,除了考虑界面的布局美观性、还要考虑图标的协调性、还有就是整体的框架,要可以比较好的适应这些布局控件的操作,不能太过臃肿或者难以阅读。
本文档为【delphi dbgrid 下拉列表和选择框】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_014457
暂无简介~
格式:doc
大小:170KB
软件:Word
页数:12
分类:生活休闲
上传时间:2017-12-12
浏览量:138