Segun mis investigaciones un MenuItem tiene 20 pixeles de alto, y el popup menú es una ventana sin bordes, así que intenta partir de ahí, para contar los items y alinearlo como quieras.
Mis investigaciones han consistido en medir en tiempo de diseño el alto de un TmenuItem con un programa que realicé hace mucho tiempo, unas simples reglas horizontales y verticales en pixeles
. No es nada científico, pero si un popup tiene 7 elementos, el alto final me daba 141 pixel, y el que tenia el foco, medía exactamente 20, useasé, que no va mal encaminado. Ojo: si utiliza las fuentes grandes pasa a ser 23 o 24 pixeles, esto no lo he corroborado "científicamente"
por no querer reiniciar, si quieres pidemelo y te lo miro bien.
Comentas que a veces no sale bien.... la verdad, uso el ClientToScreen bastante y cuando no sale correctamente es porque he intercambiado los parámetros X e Y al pasarlo al método ClientToScreen
.También puede que interfiera algo de lo que haces desde que calculas el punto y hasta que ordenas que salga el popup.
Saludos, espero te sirva de punto de partida.