Delphi DBGrid应用


本文整理自网络,侵删。

 
在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;
复制代码

相关阅读 >>

Delphi中如何捕获mediaplayer播放的视频中的每一帧 ?

Delphi为你的窗体有效地提供剪贴板的相关操作

Delphi fmx 同时使用longtap和tap

Delphi webbrowser 加载html成web

Delphi 反转字符串方法2

Delphi datasnap(midas)三层架构中,常用事件及其触发顺序

Delphi 获取随机字符串的方法 getrandomstring

Delphi过滤字符串头部和尾部得到中间部分

Delphi快速地删除一个目录

Delphi 安卓开发 ioutils文件说明

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...