I have not got into the popup forms much, but I have noticed that when using your demo and clicking on “Click for showing as popup” that a problem (?) might be occurring.
If you make a quick click, the popup form shows.
If you make a longer click, the popup form shows and hides within a fraction of a second. I have traced this and it is coming from the TacFormHandler.DoTimer procedure.
Quick click “CaptHandle” is 0. Longer click “CapHande” is > 0 which then compares handles.
I wonder why on a quick click, “CaptHandle := GetCapture;” produces 0. That is as far as I can go. GetCapture is a Windows call.