Cita:
En otros temas del foro vi que hacían algo parecido, seleccionaban un registro de una grilla presionaban un button y pasaban los datos de ese registro a varios Edit.
Hola Lucas.
|
Lamentablemente no es el mismo caso, pero una forma que se me ocurre es:
- Pone un TClientDataSet (ClientDataSet1) y otro TDataSource (DataSouce2) asociado a él, por último asociá el DBGrid2 a DataSource2
- Con el mouse posicionado en el componente ClientDataSet1 doble click sobre él. Se abrirá el Field Editor.
- Ya abierto el Field Editor, botón derecho del mouse sobre él y elegí New Field.
- En Name poné el (*)mismo nombre que el 1° campo del ADOQuery, en Type el mismo tipo que el 1° campo del ADOQuery. Y si requiere valor, en Size dale el mismo que el 1° campo del ADOQuery.
- Repetí los pasos del punto 4 para todos los campos que haya en el ADOQuery.
(*) puede ser el que gustes pero para simplificar te aconsejo el mismo.
Es decir que
ClientDataSet1 tiene que tener una copia de todos los campos del
ADOQuery1.
Luego el código:
Código Delphi
[-]
...
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
ClientDataSet1.CreateDataSet;
ClientDataSet1.Open;
end;
procedure TForm1.btnPasarRegistroClick(Sender: TObject);
var
i: Integer;
begin
ClientDataSet1.Append;
with DBGrid1.DataSource.DataSet do
for i:= 0 to FieldCount-1 do
ClientDataSet1.Fields[i].Value := Fields[i].Value;
ClientDataSet1.Post;
end;
...
Haciendo click sobre el
TButton se irá copiando a
DBGrid2 el registro que esté seleccionado en
DBGrid1.
Saludos.