具体是这样子
如一个记录
  字段   Type  Qty
         男   200
     女   300
当在DBGRID中显示时,当Type列是男时,QTy列可以编辑,否则如果Type是女时,则Qty是不可编辑。怎么实现。      

解决方案 »

  1.   

    var
      i: integer;
      tmpF: TField;
    begin
      for i := 0 to DBGrid1.FieldCount - 1 do
      begin
        tmpF := DBGrid1.Fields[i];
        if tmpF.FieldName = 'Qty' then
          if tmpF.AsString = '女' then
          begin
            tmpF.ReadOnly := true;
          end;
      end;
    end;
    由于这个是控制整个列,不能控制每个行,所以还主楼主想想办法,可在其它事件想一些主意,或者使用其它组件
      

  2.   

    在OnDrawCellClick事件,判断当前点击的此条记录的那个性别字段是‘男’则此条记录可以更改,否则不可更改,不难得哦,我做过。
      

  3.   

    建立不要用DBGRID 不好控制 用STRINGGRID就可以  D自帶的  當然 三方控件很多,我不建議用:)