form1中有stringgrid1,button1,
form2中有dbgrid1,且dbgrid1连接到一个数据表table1上了具体要求是这样的,
1.点击form1中button1事件,跳出form2并同时dbgrid1显示出table1的数据,
2.然后再双击dbgrid1中的某行数据,form2关闭的同时,在form1中的stringgrid1中显示刚才dbgrid1所击行的数据
  接着再点dbgrid1中的某行,动态向stringgrid1添加数据,即双击dbgrid1一次就向stringgrid1中逐行添加数据.刚学delhpi不太久,现在只能完成双击dbgrid1中行,往stringgrid1第一行添加了数据,但是第二次再重新双击dbgrid1,
还是在stringgrid1第一行添加了新数据(覆盖了原来的数据),也就是不能动态向stringgrid1添加数据了,
急急急,还请大侠们给个做法或建议哟!!!

解决方案 »

  1.   

    关闭窗体,保留一个数据集就是了,变量这个数据集,添加到grid
      

  2.   

    既然完成了第一步数据传递,第二步应该好处理啊,在form1中用一个变量控制 (iRow:integer) 已经在 stringgrid中插入的行号,然后每插入一行,inc(iRow),楼主试一下。
      

  3.   

    以上问题已解决了,如下
     form1.stringgrid1.cells.[1,form1.StringGrid1.RowCount]:=DBGrid1.dataSource.dataSet.FieldByName('名称').AsString;form2.Close;
    form1.StringGrid1.RowCount:= form1.StringGrid1.RowCount + 1但新问题又来了,这样向form1.stinggrid1中添加的数据会有重复的,怎么样才能控制往form1.stinggrid1中不重复呢!!
         
      

  4.   

    要判断重复,你需要唯一标识,并且在每次复制到stringgrid之前  判断唯一性  就是这样
      

  5.   

    但新问题又来了,这样向form1.stinggrid1中添加的数据会有重复的,怎么样才能控制往form1.stinggrid1中不重复呢!!如果用循环判断stinggrid1是否重复,比较复杂。可以加一个辅助字段,做一下标记,已经被添加的记录,不会再执行添加动作就可以了。