DBGrid和DBGridEH】的更多相关文章

二.应用实例 Enlib3.0组件包安装成功后 A.定制标题行 1.制作复杂标题行 标题行可设为2行以上高度,并可以为多列创建一个共同的父标题行.为实现这个效果,需在各个列标题属性中以“|”分隔父标题和子标题,如办公用品包括代码和名称两部分,具体属性设置如下: usemultititile=true; titlelines=2 DBGridEh.Columns[0].Title.Caption := '办公用品|代码'; DBGridEh.Columns[1].Title.Caption :=…
procedure TForm1.Timer1Timer(Sender: TObject);varm:tmessage;begin m.Msg:=WM_VSCROLL; m.WParamLo:=SB_LINEDOWN; m.WParamHi:=1 ; m.LParam:=0; postmessage(self.DBGrid1.Handle,m.Msg,m.WParam,m.LParam); end; procedure TForm1.Button1Click(Sender: TObject);b…
在 Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一.但是 DBGrid 缺省的外观未免显得单调和缺乏创意.其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目的.通过编程,我们可以改变 DBGrid 的表头.网格.网格线的前景色和背景色,以及相关的字体的大小和风格.    以下的示例程序演示了对 DBGrid 各属性的设置,使 Delphi 显示的表格就像网页中的表格一样漂亮美观.    示例程序的运行:    在 Form1 上放置 DBGrid1…
http://www.tc5u.com/cpp/xg-1730729.htm 用DBGridEh吧,只要设置属性alopAppendEh为false即可 最简单将DBGrid的option属性中goEditing设置为false,禁止DBGrid编辑 将datasource指向的table或query改readonly成true void __fastcall TForm1::Table1BeforeInsert(TDataSet *DataSet){  Abort();} procedure…
DbgridEh 对应数据集ADOTable1,其中有个字段 部门编码,另外增加查找字段比如 部门名称 ADOTable2对应查找数据集,包含 部门编码和 部门名称字段. ADOTable1 打开后,再运行 ADOTable2.Close; ADOTable2.Open; 后记录不是在第一个,需要再 ADOTable2.First; 否则 ADOTable2.Eof 为 true 如果ADOTable1对应的是普通的DBGRID,则不需要 ADOTable2.First; 奇怪了. unit U…
1.首先把DBGrid->options-dgMulitSelect设为True.  dgRowSelect也设为True,此属性设为true后,DBGrid将不能编辑,如何实现能否编辑代码如下 要先引用 uses DBGrids单元 procedure TfrmXJCGHD.CheckBox1Click(Sender: TObject);begin  inherited;  if checkBox1.Checked then  begin    DBGridEh.Options := DBGr…
方法1: (不用编程写代码) 程序中引用 单元 EhLibCDS设置DBGridEh的属性:      ColumnDefValues.Title.TitleButton = True      OptionsEh = [ghAutoSortMarking, dghMultiSortMarking]      SortLocal = True 参考: 以下翻译来自EhLib/DataService/readme.txt “在 Ehlib 的 DataService 文件夹下提供了一些可以使数据集…
通过dbgrideh 从数据集中选择合适的记录 //---------------------------------------------------------// 通过dbgrideh 从数据集中选择合适的记录 //--------------------------------------------------------- 比较常用,前几天好像论坛上有人提过类似问题,哪位朋友有更好的办法,请不吝赐教. 通过dbgrideh 从数据集中选择合适的记录,可以通过鼠标拖动选择,shift…
DBGridEh导出Excel等格式文件 uses DBGridEhImpExp; {------------------------------------------------------------------------------- 过程名: TfrmEmplyExport.OutToFile 作者: han 日期: 2007.08.08 参数: IADO : TADOQuery; DgEh : TDBGridEh 返回值: 无 说明: 导出查询结果到文件--------------…
本文示例源代码下载 CGridCtrl_demo19_01.zip为演示CGridCtrl的使用 CGridCtrl_demo19_02.zip演示与CMYODBC的配合使用 一.引言 在用vc开发关于数据库的项目时,通常我们只好用微软的DBGRID作为数据库表格控件,其实微软的DBGRID并不好用,想找一份好的帮助文档都找不到,并且界面并不友好,比起C++Builder中的DBGRID来说是逊色不少,但是DBGRID在开发数据库的项目中又是常用的控件,所以就一直想找一个好用的DBGRID,可是…
如何让DbGrid支持鼠标滚轮滚动 在主窗体上加一个ApplicationEvents控件(控件在Additional面板中), 在它的OnMessage事件中加入下述代码,一切搞定-! procedure TFrm_main_usermanager.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); ..] of char; begin //给DBGrid加上鼠标滚轮 if Msg.message <> WM_M…
delphi中如何通过单击列标题进行升降排序, 在dbgrid的ontitleclick事件里添加这样的事件处理 procedure TForm3.DBGrid1TitleClick(Column: TColumn); begin if frmDataPool.qry需要做的事.SQL.Text.Contains('DESC') then begin with frmDataPool.qry需要做的事 do begin Close; SQL.Text := 'SELECT * FROM 需要做的…
Delphi 语言的数据库编程中,DBGrid 是显示数据的主要手段之一.但是 DBGrid 缺省的外观未免显得单调和缺乏创意.其实,我们完全可以在我们的程序中通过编程来达到美化DBGrid 外观的目的.通过编程,我们可以改变 DBGrid 的表头.网格.网格线的前景色和背景色,以及相关的字体的大小和风格.    以下的示例程序演示了对 DBGrid 各属性的设置,使 Delphi 显示的表格就像网页中的表格一样漂亮美观.    示例程序的运行:    在 Form1 上放置 DBGrid1.Q…
http://www.cnblogs.com/leewiki/archive/2011/12/16/2290172.html Delphi中点击DBGrid某一行获得其详细数据方法 前提是用ADOTable进行数据库的链接.(其他的链接数据库的方法没有试过) 在方法:DBGrid1DblClick中添加代码: 1 ComboBox1.Text:=DBGrid1.Columns.Grid.Fields[0].Value;2 Edit1.Text:=DBGrid1.Columns.Grid.Fiel…
EhLib DBGridEh组件在Delphi中应用全攻略总结(转) http://blog.sina.com.cn/s/blog_94b1b40001013xn0.html 优化SQL查询:如何写出高性能SQL语句 http://blog.sina.com.cn/s/blog_94b1b4000102vtp8.html…
dbgrid数据显示和数据源不同,在ODBC配置时如下设置,去掉勾…
在dbgrideh中允许选择多行,如何知道哪些行被选中是个BOOKMARK类型的属性.SelectedRows: TBookmarkListprocedure TForm1.Button1Click(Sender: TObject);vari, j: Integer;s: string;beginif DBGrid1.SelectedRows.Count>0 then with DBGrid1.DataSource.DataSet do for i:=0 to DBGrid1.SelectedR…
一个简单的Delphi7小程序,使用MySql数据库做简单查询,用DBGrid控件显示结果,实现过程如下: (1)在MySql中新建demouser表,插入记录用于测试. (2)在Delphi7中新建项目. (3)在From中添加组件. 组件Panel:pnl1 组件属性-属性值: Caption-请输入工号: 组件Edit:edt1 组件Button:btn1 组件属性-属性值: Caption-查询 组件ADOQuery:qry1 组件属性-属性值: Active-True //设置SQL属…
比如我查找张三,那么DBGrid就可以定位到张三那行并选中这行,除了用循环实现还有没有快速定位的方法,谢谢! 解决方案 » to SuperTitan001 那如何找到张三的这行呢?除了用循环还有什么快速找到这行的方法吗? 最简单的dbgrid1.datasource.dataset.locate('字段名', '张三',[])详细的看delphi的帮助…
在数据库系统设计中经常要用到在表格中进行数据录入,如何判断在数据导入时的数据有效性呢?下面介绍几种常用的方法与大家交流. 方法一:Dbgrid是与Table,在Table的Column的OnSetText和OnValidate事件中处理. 1.在OnSetText中判断数据的合法性,如果不合法,在OnValidate处理,如果不合法则abort 2.抛出一个异常Raise,即可保证焦点不会丢失. 也可以在Table1.BeforePost里面处理,如果不符合要求,ShowMessage("&qu…
有时表中字段有更新,dbgrid无法显示表中字段. 解决办法: 1.adoquery断开 2. dbgrid字段全部删除 3.adoquery打开 4.dbgrid选择全部字段…
在实际项目中,偶然遇到需要按下SHIFT键,在DBGrid中进行多选的情况,测试了几种方法,最终确定了一个比较好的解决方法,总结如下: procedure TTestFrame.TestDBGridMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin //实现 Shift+鼠标左键单击 多选 if Button = mbLeft then begin if not FblS…
给你段源码看一看用stringgird做得: procedure Tfrmingoods.adddata ; var i:integer; begin do begin ,i])=trim(goodsid.Text) then begin messagedlg(); exit; end; end; if goodsid.Text<>'' then begin if dm.commquery.Active then dm.commquery.Active :=false; dm.commquer…
Delphi DBGrid右键删除行并提交至数据库.在form上添加,控件TPopupMenu,并指定右键名称:删行 2.编写删除语句: If ADOQuery1.State in [dsEdit, dsInsert] then ADOQuery1.Post;    If ADOQuery1.RecordCount <> 0 then ADOQuery1.Delete; 3.把dbgrid的PopupMenu属性,设置成刚刚添加的控件TPopupMenu. 4.编译,运行…
在设计过程中,有时候数据较大量,field 较多的时候,只是点击单元格可能会对某个field的数据误操作(如数据错行),为此才会想到这个问题,解决办法如下:点击单元格就改当前行颜色. 首先DBGRID的属性做好下设置(其实也是DBGRID默认的属性) DBGrid1->Options->dgEditing=TrueDBGrid1->Options->dgRowSelect=False 一.先在implementation前做如下定义type  TMyDBGrid=class(TDB…
我程序是 adoquery+datasource+dbgrid 做的我有一个窗体:有四个按钮.分别是新建,修改,删除,刷新. 新建第一条记录,dbgrid显示一条记录,新建第二条记录.DBGRID总共显示第一,第二条记录.不需要把以前记录显示出来.. 修改时候,,,当修改当前记录完成后DBGRID回当前修改行. 删除一条记录...定位到删除记录下条记录. ADOQuery1.Close; ADOQuery1.SQL.Text:='select * from 表名 where (ID > ' +Q…
https://zhidao.baidu.com/question/580946797.html DELPHI 中,使用 dbgrid显示数据.窗体上放置三个按钮,caption分别为:修改.删除.更新.1,修改就是直接在dbgrid中修改数据,然后保存到数据库中:2,删除,就是,当鼠标点击一条记录后.在单击此按钮,就可以在数据库中删除此条记录:3,更新就是当数据库内容有变化后,单击此按钮,显示当前数据库中的数据. 以adoquery为例1修改 如果adoquery的 locktype为ltOp…
uses ComObj; //DBGrid:指定的DBGrid;SaveFileName:要保存的文件名 function ExportDBGrid(DBGrid: TDBGrid; SaveFileName: string): boolean; var c,r,i,j: integer; app: Olevariant; TempFileName, ResultFileName: string; begin try result := True; app := CreateOLEObject(…
(一)动态添加列 procedure TForm2.FormCreate(Sender: TObject); var   vCol : TColumn; begin   vCol := DBGrid1.Columns.Add;   vCol.Title.Caption := 'Col1';   vCol.FieldName := '表的列名1';   vCol := DBGrid1.Columns.Add;   vCol.Title.Caption := 'Col2';     vCol.Fie…
设置如下就可以了..... FooterRowCount  : 1 SumList--------Active:=true 双击 DBGridEh  加入所需要的列....然后在 需要合计的.....设置.. Footer------Value Type  ===>fvtSum 取低值.. Edit7.Text:=DBGridEh1.希望是你要的吧....…