DBGrid1

  A、ShowMessage(IntToStr(Column.Index)); 
  B、ShowMessage(IntToStr(dbgrid1.SelectedField.Index));

1、得到当前格子中的内容:
DBGrid1.Fields[DBGrid1.SelectedIndex].DisplayText;
把DBGrid1.SelectedIndex改为你所希望引用的字段就可以了,如第3个字段。

DBGrid1.Fields[3].DisplayText;

2、双击单元格触发不同事件

procedure TMainFrm.DBGrid1DblClick(sender:TObject);

begin

     if dbgrid1.fields[dbgrid1.selectedIndex].FiledName='GNO' then begin   //   dbgrid1.selectedIndex ---选中单元格列

         //响应事件

     end;

     if dbgrid1.fields[dbgrid1.selectedIndex].FiledName='PSNNAME' then begin

         //响应事件
     end;

     if dbgrid1.fields[dbgrid1.selectedIndex].FiledName='RCSJ' then begin

         //响应事件

     end;

end;

 

//dbgrd1DrawColumnCell事件中 
 //隔列变色
     if DataCol mod 2 = 0 then
    (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk //定义背景颜色
  else  (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); //定义背景颜色
   //隔行变色
   if qryHIS_Prices.RecNo mod 2 = 0 then
    (Sender as TDBGrid).Canvas.Brush.Color := clInfoBk //定义背景颜色
  else  (Sender as TDBGrid).Canvas.Brush.Color := RGB(191, 255, 223); //定义背景颜色
  //当前行变红
  if ((State = [gdSelected]) or (State = [ gdSelected,gdFocused])) then
    if not dbgrd1.SelectedRows.CurrentRowSelected then
      dbgrd1.Canvas.Brush.Color := clRed; //当前选中单元格显示红色
  dbgrd1.Canvas.Pen.Mode := pmMask;
  dbgrd1.DefaultDrawColumnCell(Rect,DataCol,Column,State);

 

转载于:https://www.cnblogs.com/chenmfly/p/4783523.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值