Ho una TImage su un TPanel e un altro (vuoto) TPanel. Voglio trascinare l'immagine dal primo al secondo pannello utilizzando il trascinamento della selezione.Spostamento delle immagini durante il trascinamento della selezione
In realtà voglio vedere l'immagine mentre si sta spostando da un pannello all'altra (semitrasparente).
Penso che dovrei usare TDragObject.GetDragImages
ma non riesco a capire come costruire tutta la magia.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
Image1.ControlStyle := Image1.ControlStyle + [csDisplayDragImage]; // ???
TImage(Sender).BeginDrag(False);
end;
procedure TForm1.Image1StartDrag(Sender: TObject; var DragObject: TDragObject);
begin
// ???
end;
procedure TForm1.Panel1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
if (Source is TImage) then
Accept := TImage(Source).Parent <> Sender;
end;
procedure TForm1.Panel1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
if (Source is TImage) then
begin
TImage(Source).Parent := TPanel(Sender);
TImage(Source).Align := alClient;
end;
end;
Aggiornamento - ho trovato un articolo utile: Implementing Professional Drag & Drop In VCL/CLX Applications
Grazie @bummi. il tuo codice è stato molto utile! – ZigiZ