当在dbgrid中按下down键时。  
 
默认增加一空行。  此时在输入的时候还没有post;  
   
怎样取得输入的字符。  
 
不在onkeypress,事件中取,不在onkeydown中取。  
 
怎样做。http://expert.csdn.net/Expert/TopicView2.asp?id=1511992还没有post;,此时无论你通过怎样取数据源的值,是取不出来的。
Column[0].dispytext, fieldbyname('field').asstring.
dbgrid1.Fields(0).Value 
DBGrid1.SelectedField.AsString 
像这些方法都无效。我要实模糊查找功能。在列的下面显示另外一个过滤框. 现在就是取不出输入的字符.  解决此题300分不要看题目简单,注意了。

解决方案 »

  1.   

    通常我的做法是:用一个内存表控件[www.playicq.com下载]然后对内存标进行操作!
      

  2.   

    根据你的功能你可以改变方法:多加一个EDIT控件,要输入数据时先用EDIT输入过滤,得到正确的输入结果后再付值给数据集。
      

  3.   

    多加一个edit是非常方便,但我不想额外的增加控件。要不然也不会出500分。
      

  4.   

    在Dataset 控件的BeforePost事件上取:
    例如, 数据表有个字段为UserID:
    procedure TForm1.ADODataSet2BeforePost(DataSet: TDataSet);
    begin
      showmessage(DataSet.FieldByName('UserID').AsString);
    end;
      

  5.   

    http://expert.csdn.net/Expert/TopicView1.asp?id=1512406