Hola Martin.
En este momento se me ocurren dos ideas, espero que alguna te sirva.
La primera es usar un
TCheckListBox para cargar los datos del
TDBGrid y hacer la selección desde el primer componente:
Código Delphi
[-]
...
CheckListBox1.MultiSelect:= True;
while not IBQuery1.Eof do
begin
CheckListBox1.Items.Add(IBQuery1.FieldByName('FECHA').AsString+' '+
IBQuery1.FieldByName('DETALLE').AsString);
IBQuery1.Next;
end;...
Luego hacer la operación que desees. A modo de ejemplo agrego los datos a un memo, pero lo mismo sería agregarlos a un DataSet.
Código Delphi
[-]
procedure TForm1.btnAgregarClick(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to CheckListBox1.Count-1 do
if CheckListBox1.State[i] = cbChecked then
Memo1.Lines.Add(CheckListBox1.Items[i]); end;
La segunda es usar la propiedad
dgMultiSelect del
TDBGrid:
Código Delphi
[-]
DBGrid1.Options:= DBGRid1.Options + [dgMultiSelect];
Operación (de nuevo al memo):
Código Delphi
[-]
procedure TForm1.btnAgregarClick(Sender: TObject);
var
i: Integer;
begin
for i:= 0 to DBGrid1.SelectedRows.Count - 1 do
begin
DBGrid1.DataSource.DataSet.Bookmark:= DBGrid1.SelectedRows[i];
Memo1.Lines.Add(DBGrid1.Columns[0].Field.AsString+' '+
DBGrid1.Columns[1].Field.AsString); end;
end;
Logicamente el componente
JvMemoryData quizá haga más sencilla la tarea...
Saludos.