我首先定义了一个全局变量 myselect:TBookMark; 用来记录DBGrid的当前选择行,
我想实现点击按钮后只能修改 DBGrid 的当前行,DBGrid.readonly:=false;当鼠标点击非当前行时DBGrid.readonly:=true;当鼠标再次点击myselect行时DBGrid.readonly的值又变回false应如何实现

解决方案 »

  1.   

    很简单,AfterScroll事件中,先比较,然后决定ReadOnly的值。
      

  2.   

    waysoft(华子),我试过你的方法了,好象不行
      

  3.   

    不能去控制整个DBGrid的ReadOnly属性吧!我以前写过直接在DBGrid里进行增删改,不过控制起来比较麻烦,忘了,我要找找原来代码才好说
      

  4.   

    mengbo(心有独钟),先谢了
    但我现在很急用,能快点吗?拜托
      

  5.   

    当你点‘实现点击按钮’时记录可编缉的当前行ID(全局)
    剩下的用AfterScroll事件中可以搞定:
    if 当前行<>ID then
       DBGrid.readonly:=true
    else
       DBGrid.readonly:=false; 当然在退出编辑时,ID要清空
      

  6.   

    XXSingle(水连天)你说的方法我试过了,但行不通
      

  7.   

    不能直接改,就算用table连接也不好,但可以改!
      

  8.   

    怎么添加?DBGrid1.Columns.Items[1].PickList := ????写了也白写。。什么也显示不出。!
      

  9.   

    if TStringGrid(DBGrid1).Row=ID then
      DBGrid1.readonly:=false
    else
      DBGrid1.readonly:=true
      

  10.   

    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin
           dbgrid1.ReadOnly:=false
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
    adotable1.Open;
    end;这个可以修改数据,你在向着你的实现目标改进改进,就ok 了