0

i found a bug in delphi xe7, after a drag and drop TlistBoxitem, form loose over effect on all components.

I have to click the form to get mouseenter effect. i saw (on debug mode) the TlistBox start draganddrop by call os dragAndDrop service's OS. from FMX.ListBox unit

if AllowDrag then
      begin
        Screenshot := ItemDown.MakeScreenshot;
        try
          AniCalculations.MouseLeave;
          FMouseSelecting := False;
          // start drag service
          Root.BeginInternalDrag(Selected, Screenshot);
        finally
          Screenshot.Free;
        end;
      end;

i tried draganddrop on delphi berlin and the bug is fixed. i can't see the source because it's the light version.

i didn't find any solution in web.

i did a project exemple : http://www.partage-fichiers.com/upload/qgbl1e5g

After drag and drop items mouseenter (on all compenents) and click on Tlabel (hittest=true) is not fired

  • i tested the main form don't loose focus and isn't deactivate – user2025814 Dec 29 '16 at 10:02
  • ok sorry i founded a similar question https://stackoverflow.com/questions/15821670/delphi-window-losing-focus-after-custom-drag?rq=1, but i work in firemonkey i think it's not just a TlistBox's bug – user2025814 Dec 29 '16 at 10:21
  • Hard for us to investigate without a reproduction. Can't we have a [mcve]? – David Heffernan Dec 29 '16 at 11:08
  • hi david sorry for my bad post, you can reproduce the bug without coding (only graphic): with delphi xe7 make a form in FMX with a Tbutton and Tlistbox insert sevral TlistBoxItem. After a internal dragAndDrop of a Item, the TButton's mouseEnter is not fired. i write a small code because i isolated the bug at "myListBox.Root.BeginInternalDrag(aItem, Screenshot);" if is not enough i'll post a minimal code Thank you anyway – user2025814 Dec 29 '16 at 11:33
  • I don't want to have to pfaff around like that. If it takes me effort to help you, I'll do something else. – David Heffernan Dec 29 '16 at 11:34
  • is it better or It's still not enough ? – user2025814 Dec 29 '16 at 13:41
  • That doesn't look much like a [mcve]. Did you follow that link and read it carefully? – David Heffernan Dec 29 '16 at 13:54
  • i'll post a project test – user2025814 Dec 29 '16 at 14:04
  • Why don't you do what I suggested, and what you claimed earlier to be possible? Make a very small reproduction. We don't need to see all of your code that is unrelated to the behaviour at hand. – David Heffernan Dec 29 '16 at 14:05
  • ok i'll reduce my code and i'll clearer – user2025814 Dec 29 '16 at 14:11

1 Answers1

0

For get mousenter and mouseclick events after

BeginInternalDrag(mylistboxItem, Screenshot);

Do

MyListBox.Root.Captured := nil;