以下是DBGrid的OnCellClick事件的代码
procedure TForm1.DBGrid1CellClick(Column: TColumn);
var
 s:string;
begin
  with dbgrid1 do begin
 
  在此处显示对话框让用户选择一个值,将这个值赋给s   DataSource.DataSet.Edit;//如果dbgrid连接的Query或者table已经处于编辑状态,则不需要这句话.
   DataSource.DataSet.FieldByName(Column.FieldName).AsString:=s;
  end;
end;

解决方案 »

  1.   

    var
      s:string;
    begin
      form2.showmodal;//我要SHOW的不是一个对话框,而是另一个FORM!!!
      s:=form2.edit1.text;
    end;
    但是,当执行了第一行就不再往下执行了,除非再单击一下,但这不是我所需要的。
    请高手指点。这可怎么办呢!!! 
      

  2.   

    showmodal出来的form当然要关闭以后才能往下执行,你想达到什么目的?
      

  3.   

    你在from2的edit1.onexit中
    from1中你把s放在from1
    的public定义procedure TForm2.Edit1Exit(Sender: TObject);
    begin
      from1.s:=edit1.text;
      close;
    end;
      

  4.   

    其实你可以不用再建一个新的窗体的,你用一下InputQuery试试
      

  5.   

    其实你可以不用再建一个新的窗体的,你用一下InputQuery试试
      

  6.   

    其实你完全可以不用再建一个新的窗体,或者弹出一个什么对话框什么的!!!
    反正你的目的就是让用户选一个值,就象下拉框那样的!!!
    dbgrid 有这样的功能:
    在dbgrid 的columns属性中有picklist(Tstringlist类型)提供
    你试一下就知道了!!!!