在程序中指定
DBGrid.Columns[I].ReadOnly := True

解决方案 »

  1.   

    提供一种方法不一定好
     
    procedure TForm1.DataSource2DataChange(Sender: TObject; Field: TField);
    begin
      if  DataSource2.DataSet.Fields[0] >10 then
        DBGrid1.Options :=  DBGrid1.Options -[dgEditing]
      else
        DBGrid1.Options :=  DBGrid1.Options +[dgEditing];
    end;
      

  2.   

    tikkypeng(千两狂死郎)的方法好一些。
      

  3.   

    为什么要在dbgrid中改?这样不好吧?
      

  4.   

    DBGrid.Columns[I].ReadOnly := True 是对列而言吧?
      

  5.   

    对记录只能处理OnClick事件,判断所点记录是否符合EDIT条件给分哦
      

  6.   

    你先对数据库表进行处理不就行了
    可以先过滤
    或者指定哪些列显示或者象老狼说的readonly
      

  7.   

    procedure TForm1.Query1AfterScroll(DataSet: TDataSet);
    begin
      DBGrid1.ReadOnly := (DataSet.Fields[0].AsString <> 'It is me');
    end;
      

  8.   

    偶一般在DbGrid的OnCellEnter处理procedure TFrmMaster.MyDBGridColEnter(Sender: TObject);
    begin
      TDbGrid(Sender).ReadOnly:=TDbGrid(Sender).SelectedField.FieldName='abcd'
    end;
    供大家参考