Delphi Tdbgrid和TADOQuery和StringgGrid

本文介绍如何使用 Delphi 实现数据绑定,包括 TDBGrid 控件的使用方法,如获取列数、记录数及字段值等。同时讲解了如何通过 OnDrawColumnCell 事件来自定义 DBGrid 的样式,以及实现分页和多选等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

dbgrd1: TDBGrid;

qry1: TADOQuery;


dbgrd1.Columns[s].Grid.FieldCount    //获取DBgrid列的数目

qry1.FieldList.Count  //获取列的数目

dbgrd1.Columns[s].Grid.Fields[k].value  //获取表格某行的值

qry1.RecordCount    //获取qry1所获取元素的数目,包括标题

qry1.Recordset.PageCount//分页页面显示的数目
qry1.Recordset.PageSize//分页页面的大小


改变dbgrid的方框的颜色

1:双击OnDrawColumnCell


在procedure dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);过程里面写实现方法


procedure TForm1.dbgrd1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);

begin
   if (qry1.RecordCount mod 2)=1  then     //每列不同的显示结果
  begin
    with (Sender as TDbGrid).Canvas do     //进入到canvas页面布局里面
    begin
      Brush.Color:=$00FFFFC1;              //修改颜色
    end;
  end;
  (Sender as TDbGrid).DefaultDrawColumnCell(Rect,DataCol,Column,State); //将颜色填充到布局里面

end;


获取纵向选择的索引

dbgrd1.SelectedIndex  

TDBgrid 获取指定的行和列的值

dbgrd1.Columns.Grid.Fields[dbgrd1.SelectedIndex].Value  


dbgrd1设置多选

将dgMulitSelect改成true

option->dgMulitSelect =true


StringGrid

1:Cells[列,行]:=value;


//绑定数据对象

procedure TForm1.btn1Click(Sender: TObject);
var
   qry2:  TADOQuery  ;
var
    Node:TTreeNode;
begin
    qry2:=TADOQuery.Create(nil);//创建一个对象
    qry2.Connection:=con1;
    qry2.SQL.Add('exec test test');
    ds1.DataSet:=qry2 ;   //绑定dateset
    qry2.Open;
    qry2.First;//游标移动到指定的行
    while not qry2.Eof do
    begin
       Node:= tv1.Items.AddFirst(nil,qry2.FieldByName('StudentID').AsString);
       tv1.Items.AddChildFirst( Node,qry2.FieldByName('StudentName').AsString);//获取字段的值
       tv1.Items.AddChildFirst( Node,qry2.FieldByName('StudentAge').AsString);//获取字段的值
       qry2.Next;//游标移动到下一行
    end;
 end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值