[Lazarus] Drag-n-Drop usage?

Michael Van Canneyt michael at freepascal.org
Tue Sep 14 14:12:56 CEST 2010

On Tue, 14 Sep 2010, Graeme Geldenhuys wrote:

> Hi,
> I have searched the web for some Drag-n-Drop examples (even with
> Delphi - just to broaden my search). Most of the examples are in the
> form of this:
> procedure TForm1.FormDragDrop(Sender, Source: TObject; X, Y: Integer) ;
> begin
>    if Source is TImage then
>    begin
>      TImage(Source).Left := X;
>      TImage(Source).Top := Y;
>    end;
> end;
> procedure TForm1.FormDragOver(Sender, Source: TObject; X, Y: Integer;
> State: TDragState; var Accept: Boolean) ;
> begin
>    Accept := (Source is TImage) ;
> end;
> Well, this seems pretty useless to me, because that means dragging
> between VCL control to VCL control. Other Windows applications for
> example will not have a TImage class. So how is Delphi (and thus
> Lazarus) handle dragging from external (.NET, Mono, MFC, GTK2, KDE
> etc) applications to a VCL or LCL application?  What is the value and
> type of Source parameter  then?  Where do you find the actual data
> being dragged in? Where do you tell it what data (mime types) you want
> to allow?

On windows, you can only intercept the dropfiles message, which always
comes from the explorer and has a well-known format.

There is no general inter-application drag and drop mechanism.

I don't see how you could implement it in the first place.


More information about the Lazarus mailing list