Ver Mensaje Individual
  #3  
Antiguo 25-04-2012
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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]); // agregar
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); // agregar
  end;
end;
Logicamente el componente JvMemoryData quizá haga más sencilla la tarea...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita