在DBGrid中可不可以实现以下几个功能?如果可以的话该如何做?可不可以对某些单元格改变颜色?有没有针对某个单元格的双击和右击事件?

解决方案 »

  1.   

    DblClick//双击事件procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;//改变颜色
      const Rect: TRect; DataCol: Integer; Column: TColumnEh;
      State: TGridDrawState);
    begin
      if DBGrid.DataSource.DataSet.FieldByName('是否').AsInteger=0 then
      begin
        DBGrid.Canvas.Font.Color:=clred;
        DBGrid.DefaultDrawColumnCell(rect,datacol,column,state);
      end;end;
      

  2.   

    改变颜色的例子在CSDN里搜索一下,能找到一大把....
      

  3.   

    单元格的双击不知道,但字段属性里有一个buttonstyle,可以为单元格加一个按扭。procedure Tsp.gzd_dbgDrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
    var//改变颜色
      zt,s:string;
    begin
      if gysdbf.gzdjm_qry.RecordCount=0 then exit;  if column.FieldName='flag' then
      begin
        zt:=column.Field.AsString;
        if zt='1' then s:='      '
        else s:='已保存';
        gzd_dbg.Canvas.Font.Color := clRed;
        gzd_dbg.Canvas.TextRect(Rect,Rect.Left+2,Rect.Top+2,s);
        gzd_dbg.Canvas.Font.Color := clBlack;
      end;
    end;