如题。

解决方案 »

  1.   

    在DBGrid里面好象没有专门的单击一行和一列的时间
    可能要自己写,至少我一直是自己写的!1,单击一行,最好是首先把options的dgRowSelect设置为true;你可以把一行选中,但是好象没单击事件,只有OnCellClick事件,是单击一个单元格的,如果你把开始的那个属性设置了,那么在这个事件中可以把整行选中,你也可以写自己的东西,把这个当成是单击一行!
    比如说:
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
      Showmessage(inttostr(Self.DBGrid1.DataSource.DataSet.RecNo));
      //显示被单击了哪一行
    end;2,我一般是在OnTitleClick事件中写的。
    比如:
    procedure TForm1.DBGrid1TitleClick(Column: TColumn);
    var
      i: integer;
    begin
      for i := 0 to Self.DBGrid1.Columns.Count-1 do
        Self.DBGrid1.Columns[i].Color := DBGrid1.Color;
      self.DBGrid1.Columns[Column.ID-1].Color := clBlue;
      //因为没有选中一列的属性,所以必须自己去改变颜色,表示选中
      showmessage(inttostr(Column.ID));//显示选中的列号
    end;