Code News Fast

To: All
From: Dmitry Gultyaev
Newsgroup: embarcadero.public.delphi.firemonkey
 
26-Nov-2013

Drag and Drop problem

Hi, I was trying to add a simple drag n drop functionality to application. It is now much easier to make, but.. There is a general problem of drag n drop functionality in XE4 and probably XE5. Basically it is not possible to drag something to a control, that is placed on layout. I have everything on layouts and drag n drop just not working.
I fixed myself this issue in FMX.Forms by changing following procedure:
{code}function TCommonCustomForm.FindTarget(P: TPointF; const Data: TDragObject): IControl;
var
  i: Integer;
  NewObj: IControl;
begin
  Result := nil;
  for i := 0 to ChildrenCount - 1 do
    // add an exception for layouts
if Supports(Children[i], IControl, NewObj) and NewObj.Visible and (NewObj.HitTest or (NewObj is TLayout)) then
    begin
      NewObj := NewObj.FindTarget(P, Data);

      if Assigned(NewObj) then         Exit(NewObj);     end; end;{code}
 
 
Originally created by
[Tamarack]
Sun, 25 Jun 2017 05:23:10 UTC
Copyright © 2009-2017
HREF Tools Corp.