En realidad lo que deseaba era que la esquina inferior izquierda del menu apareciera alineada con la esquina superior izquierda del boton, pero no lo he logrado, con las soluciones actuales aparece a veces, y a veces no, depende del numero de items (es que seran muchos botones con sus respectivos menus, es una clase). Supongo que deberia calcular el alto del menu para restarlo a la posicion del boton y que aparezca exactamente alineada, pero la propiedad height no existe en el popup menu.
Lo que busco es exactamente lo que se logra al asignar la propiedad PopupMenu del boton y activar dicho Popup mediante la tecla aplicacion de windows, de esa forma sale correctamente alineado (Solo cuando el boton tiene el enfoque). He estado explorando el codigo de la VCL y he visto que lo del popup menu es un mensaje de Windows, que Delphi captura en la clase TControl (no sé si se genera este mensaje al activar el popup mediante la tecla aplicacion
), pero no he encontrado nada de la tecla aplicacion y no he podido ver como lo logra al activar el menu mediante esta tecla.