Ich hab zwar nicht ganz verstanden was du machen möchtest, aber vielleicht geht das einfacher als du denkst (falls du das denkst was ich denke, dass du denkst).
Hier ein einfaches Beispiel wie man Popupmenü genau unter einer Komponente (hier Button) positionieren kann. Vielleicht ist es bereits das was du brauchst.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
PopupMenu1.Popup(Button1.ClientOrigin.X, Button1.ClientOrigin.Y + Button1.Height);
end;
//
Achso, die meisten Köche kochen mit Wasser, d. h. wenn es in einigen Programmen manchmal so aussieht als ob irgendwas außerhalb des Fensters gezeichnet wird, dann wird oft ein temporäres Fenster erzeugt auf dem gezeichnet wird. Beispiel Total Commander bietet an einer Stelle eine Art eigene eigene Popupmenüs mit Bildlaufleiste (kannst mal angucken). Das wird mit eigenen Fenstern gelöst. Es werden so viele temporäre Fenster produziert, wie viel Menüs und Unternemüs benötigt werden.