Ich habe eine TImage auf einem TPanel und eine andere (leere) TPanels. Ich möchte das Bild von dem ersten auf das zweite Panel ziehen und ziehen.Verschieben von Bildern beim Ziehen und Ablegen
Ich möchte eigentlich das Bild sehen, während es von einem Panel auf die andere (halbtransparent) bewegt.
Ich denke, ich sollte TDragObject.GetDragImages
verwenden, aber ich kann nicht herausfinden, wie man die ganze Magie konstruiert.
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;
Update - fand ich einen nützlichen Beitrag: Implementing Professional Drag & Drop In VCL/CLX Applications
Danke @bummi. Dein Code war sehr hilfreich! – ZigiZ