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);