在DBGrid中遇到的高难度问题!!问题:  我要在DBGrid(DBGrid的DataSet是表1)的一个列中输入信息然后在表2中查找, 如果找到,在表1中添加这条记录,否则取消操作。要求:  按下‘回车’或‘下箭头’键时执行查找操作;回车键的方法已经实现; 用箭头键时遇到下面问题:怎么能得到我输入的信息(要查找的内容)?取表1当前记录字段的值是不行的。望高手指点。

解决方案 »

  1.   

    在ONCOLEXIT事件中写相应代码试试.
      

  2.   

    不行啊,dbgrid1.fields[0].asstring返回的不是当前的单元值
      

  3.   

    function GetDGridInputText(Grid: TDBGrid): string;
    var
      I: Integer;
      Edit: TCustomEdit;
    begin
      Result := '';
      for I := 0 to Grid.ComponentCount - 1 do
        if Grid.Components[I] is TCustomEdit then
        begin
          Edit := TCustomEdit(Grid.Components[I]);
          if Edit.Visible and Edit.Focused then
          begin
            Result := Edit.Text;
            break;
          end;
        end;
    end;