Einzelnen Beitrag anzeigen

Benmik

Registriert seit: 11. Apr 2009
557 Beiträge
 
Delphi 12 Athens
 
#3

AW: Wie DragDrop-Ende signalisieren?

  Alt 1. Jan 2022, 20:48
Hallo Uwe,

Frohes Neues Jahr!

Anbei ein Minimalbeispiel, leider muss dazu die erwähnte Komponente installiert sein. Das Beispiel besteht lediglich aus der Form mit einem TPanel darauf, dazu noch ein DropFileSource. Für die Demonstration muss es die Datei "C:\Temp\Test01.jpg" noch nicht mal geben.

Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
begin
  Panel1.Caption := 'C:\Temp\Test01.jpg';
  Panel1.DragMode := dmAutomatic;
end;

procedure TForm3.Panel1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  DropFileSource1.Files.Clear;
  DropFileSource1.Files.Add(Panel1.Caption);
end;

procedure TForm3.DropFileSource1GetDragImage(Sender: TObject; const DragSourceHelper: IDragSourceHelper; var Handled: Boolean);
var
  Pt: TPoint;
begin
  GetCursorPos(Pt);
  Handled := Succeeded(DragSourceHelper.InitializeFromWindow(Panel1.Handle, Pt, TCustomDropSource(Sender) as IDataObject));
end;

procedure TForm3.Panel1StartDrag(Sender: TObject; var DragObject: TDragObject);
begin
  DropFileSource1.Execute(False);
end;

Geändert von Benmik ( 1. Jan 2022 um 20:53 Uhr)
  Mit Zitat antworten Zitat