把DBGrideh的options的dgrowselect设为true后,可以实现对多行的选择,怎样让选中的记录循环起来,有用过的朋友请说说。

解决方案 »

  1.   

    while not qy1.eof do 
    begin
    ...
    qy1.next;
    end;
    是循环全部的记录,怎样循环选中的记录。
      

  2.   

    以下代码是选中DBGrideh中的几行数据点击右键进行下载的代码,但这样的话是连续下载所选行数的次数的光标所在行的值,其它行的值无法下载,大家看看有什么办法?也就是只能下载黑三角所在的那一行。
    procedure Tcxsjsp.N7Click(Sender: TObject);
    var str,stra:Tmemorystream;
        i,i1:integer;
    begin
      for i1:=0 to DBGrideh1.SelectedRows.Count-1 do
        begin
          str:=Tmemorystream.Create;
          str.Position:=0;
          stra:=Tmemorystream.Create;
          stra.Position:=0;
          Tblobfield(qy1.FieldByName('wjnr')).savetostream(str);
          Tblobfield(qy1.FieldByName('wjnr1')).savetostream(stra);
          for i:=0 to DBGridEh1.Columns.Count-1 do
            begin
              if dbgrideh1.columns[i].fieldname='sjwj' then
              begin
                savedialog1.filename:=qy1.fieldbyname('sjwj').asstring;
                if SaveDialog1.Execute then
                  str.SaveToFile(savedialog1.filename);
              end;
              if (dbgrideh1.columns[i].fieldname='sjwj1') and (qy1.fieldbyname('sjwj1').asstring<>'') then
                begin
                  savedialog1.filename:=qy1.fieldbyname('sjwj1').asstring;
                  if SaveDialog1.Execute then
                    stra.SaveToFile(savedialog1.filename);
                end;
            end;
          str.Free;
          stra.Free;
        end;
    end;