Hola gianfranco.
Ahora sí está un poco más claro, pero de todas maneras no alcanzo a entender la situación o te faltan algunos detalles para que lo haga.
Por que si en la parte superior tenés un
TDBImage asociado a un
TDataSet y debajo un
TDBGrid asociado al mismo, al estar seleccionada la imágen, en el DBGrid estará seleccionado el registro del campo que la contiene...
De todos modos te pongo un ejemplo de donde quizá puedas sacar alguna idea. Para el mismo agregá un
TDBCtrlGrid, un
TDBGrid y un
TDBImage centrado en el
panel del DBCtrlGrid .
Código Delphi
[-]
...
procedure TForm1.FormCreate(Sender: TObject);
begin
with DBCtrlGrid1 do
begin
Align:= alTop;
Orientation:= goHorizontal;
ColCount:= 5;
RowCount:= 1;
Height:= 130;
PanelHeight:= 115;
DataSource:= DataSource1;
end;
with DBImage1 do
begin
Height:= 105;
Width:= 105;
DataField:= 'Campo_Imágen'; end;
end;
procedure TForm1.DBImage1Click(Sender: TObject);
begin
DBGrid1.DataSource:= nil;
end;
procedure TForm1.DBImage1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
DBImage1.BeginDrag(True);
end;
procedure TForm1.DBGrid1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:= Source is TDBImage;
end;
procedure TForm1.DBGrid1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
DBGrid1.DataSource:= (Source as TDBImage).DataSource;
end;
...
Logicamente, para la prueba necesitarás un DataSet que contenga un campo con imágen.
Saludos.