10
Tôi có một TImage trên TPanel và một TPanels (trống) khác. Tôi muốn kéo hình ảnh từ bảng đầu tiên đến bảng thứ hai bằng cách kéo và thả.Di chuyển hình ảnh trong khi kéo và thả
Tôi thực sự muốn xem hình ảnh trong khi di chuyển từ một bảng đến khác (nửa công khai).
Tôi nghĩ tôi nên sử dụng TDragObject.GetDragImages
nhưng tôi không thể tìm ra cách xây dựng toàn bộ ma thuật.
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 - Tôi tìm thấy một bài viết hữu ích: Implementing Professional Drag & Drop In VCL/CLX Applications
Cảm ơn bạn @bummi. mã của bạn rất hữu ích! – ZigiZ