我用的是DBGRIDeh我想问的是:
1.如果使用shift及CTRL选择多行,选好了这后,我要知道是哪些行被选定了。。2.将选定的行中的特定列(光标所在列)的数据全部更新为同一个值,如'S' 。
请问要怎么做啊???????、?????????????

解决方案 »

  1.   

    procedure TForm1.N1Click(Sender: TObject);
    var
      i: Integer;
    begin
      if ADOQuery1.Active and (DBGridEh1.SelectedRows.Count > 0) then
      begin
        F_Edit:= TF_Edit.Create(nil);
        F_Edit.ShowModal;
        F_Edit.Free;
        if F_Edit.ModalResult=mrYes then
        begin
          for i:= 0 to DBGridEh1.SelectedRows.Count-1 do
          begin
            ADOQuery1.GotoBook(Pointer(DBGridEh1.SelectedRows.Items[i]));
            ADOQuery1.Edit;
            ADOQuery1.FieldByName(DBGridEh1.SelectedField.FieldName).AsString:= 'S';
          end;
          ADOQuery1.Post;
        end;
      end;
    end;
      

  2.   

    添加一个 popupmenu, 添加菜单‘修改’,然后写上以上事件,修改在一个窗体中输入(根据自己需要修改)
      

  3.   

    另外要注意,对GRIDE设置,允许多选,呵呵
      

  4.   

    这个速度有点慢,如果我有上万条记录需要做同列复制,好等好久。有没有更快的言法啊。直接在DBGRIDeh的单元格里复制,而不是每一次都要ADOQUERY中去弄,是不是会要快一些,
    具体怎么作呢?