1。如何获得窗体中当前获得焦点的控件?2。在一个DBGRID中,它的数据源我用一个adoquery来给。那么在dbgrid中进行修改后,会自动保存进数据库中吗?3。在一个DBGRID中,如何删除它的的某一行? (不管数据连接存在与否)4。如何得到DBGRID当前有焦点的(即被点中)的行?5。如何得到DBGRID中的具体某个格子(CELL)中的内容?为谢!

解决方案 »

  1.   

    1、form.ActiveControl就是窗体上当前获得焦点的控件
    form.ActiveControl.name就是窗体上当前获得焦点的控件的名字。
    2、会的。
    3、用dbgrid.datasource.dataset.delete或query的sql语句。
    4、DBGRID当前有焦点的(即被点中)的行就是dbgrid.datasource.dataset当前记录集的当前记录;你可以dbgrid.datasource.dataset.fieldbyname('fieldname').asstring得到当前行任意字段值。
    5、麻烦些,用4的方法也行。
      

  2.   

    Form.ActiveControl得到自己的Form的Control;Screen.ActiveContrl可以得到屏幕上其它Form上的Control。
      

  3.   

    1.获得窗体中当前获得焦点的控件: showmessage(form1.ActiveControl.Name );
    2.会,如果不想保存,设 dbgrid1.readonly:=true;
    3.adoQuery1.delete;
    4.dbgrid中被点中的行就是Query1当前记录;
    5.Edit1.text:=adoQuery1.fields[i].asString