博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DBGrid应用
阅读量:5066 次
发布时间:2019-06-12

本文共 2202 字,大约阅读时间需要 7 分钟。

在Delphi语言数据库编程中,DBGrid是显示数据的常用控件之一,下面来介绍一些DBGrid的用法。

1. 获取DBGrid选中单元格的一些信息

procedure TForm2.DBGrid1CellClick(Column: TColumn);var    strValue:string;    iCol,iRow:Integer;    rRect:TRect;begin    strValue := DBGrid1.SelectedField.Value;        //获取选中单元格的值    iCol := TDrawGrid(DBGrid1).Col;                 //获取选择单元格的列,第一列为1    iRow := TDrawGrid(DBGrid1).Row;                 //获取选择单元格的行,第一行为1    rRect := TDrawGrid(DBGrid1).CellRect(iCol,iRow); //获取选择单元格的矩形框    //ShowMessage('行:'+IntToStr(iRow)+#13'列:'+IntToStr(iCol)+#13'值:'+strValue);end;

2. 设置列名格式,一般列名只需设置一次(这里一次性绘制所有的列,以避免列数过多时,显示滚动条后的列时再绘制时影响一些正常的操作,譬如按键盘方向键定位单元格时可能会光标移到第一行),即可用全局变量进行记录下。

procedure TForm2.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;  DataCol: Integer; Column: TColumn; State: TGridDrawState);var    i:Integer;begin    if bDrawTitle=False then    //一般情况画一次就够了,不必重复画    begin        for i:=0 to DBGrid1.Columns.Count-1 do  //一下子绘制所有的列        begin            if i mod 2 = 0 then            begin                DBGrid1.Columns[i].Title.Font.Color := clRed;   //列名 字体颜色                DBGrid1.Columns[i].Title.Color := clGreen;      //列名 背景                DBGrid1.Columns[i].Color := clBlue;             //列数据 背景            end;        end;        bDrawTitle := True;    end;    //将数据背景斑马线显示    if CDS1.RecNo mod 2 = 0 then    begin        (Sender as TDBGrid).Canvas.Brush.Color := clGray;    end;    (Sender as TDBGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State);end;

3. 设置Grid单元格边框

procedure TForm2.DBGrid1CellClick(Column: TColumn);var    iCol,iRow:Integer;    rRect:TRect;begin    iCol := TDrawGrid(DBGrid1).Col;                 //获取选择单元格的列,第一列为1    iRow := TDrawGrid(DBGrid1).Row;                 //获取选择单元格的行,第一行为1    rRect := TDrawGrid(DBGrid1).CellRect(iCol,iRow); //获取选择单元格的矩形框    with DBGrid1.Canvas do    begin        Pen.Width := 4;         //设置画笔 宽带        Pen.Color := clRed;     //设置画笔 颜色        MoveTo(rRect.Left,rRect.Top);   //设置画笔 起点        LineTo(rRect.Right,rRect.Top);  //画线        Pen.Width := 2;        Pen.Color := clYellow;        MoveTo(rRect.Right,rRect.Top);        LineTo(rRect.Right,rRect.Bottom);    end;end;

转载于:https://www.cnblogs.com/liuke1987/archive/2013/02/06/2907892.html

你可能感兴趣的文章
switchcase的用法
查看>>
React.js 小书 Lesson15 - 实战分析:评论功能(二)
查看>>
Java基础03 构造器与方法重载
查看>>
软件项目经理职责[转](
查看>>
辗转相除求最大公约数
查看>>
Redis 主从集群搭建及哨兵模式配置
查看>>
nginx ------反向代理和负载均衡
查看>>
Linux下安装JDK
查看>>
[HDU] 3711 Binary Number [位运算]
查看>>
908. Smallest Range I
查看>>
ThinkPHP 分页实现
查看>>
jQuery在线手册
查看>>
APPLE-SA-2019-3-25-3 tvOS 12.2
查看>>
Python定义点击右上角关闭按钮事件
查看>>
刚刚开始
查看>>
Optional 的基本用法
查看>>
洋葱第4场C和D题解……
查看>>
php实现隐藏字符串的功能
查看>>
设计模式08: Composite 组合模式(结构型模式)
查看>>
编写高质量代码改善C#程序的157个建议——建议157:从写第一个界面开始,就进行自动化测试...
查看>>