COM,我真怀疑你的发言,为什么那个代码是BUG,为什么我这里运行非常正常,不会
覆盖BUTTON
那个代码的含义你是明不明白啊
APoint := Button.ClientToScreen(Point(0, Button.ClientHeight));
//得到button下面的屏幕坐标
if FTempMenu.IsRightToLeft then Inc(APoint.X, Button.Width);
//如果菜单是从右向左的话,把屏幕坐标加上BUTTON的宽度,只在中东国家里有效
FMenuDropped := True;//设置菜单下拉
if (GetSystemMetrics(SM_CYMENU) * FTempMenu.Items.Count) + APoint.Y >
Screen.MonitorFromPoint(APoint).Height then
Dec(APoint.Y, Button.Height);
//如果屏幕点加上菜单的高度超过了屏幕显示,就是菜单会显示到屏幕下面的话,就把
菜单显示在BUTTON上面,还有就是一个空格线也是一个ITEM,你不会不知道吧,呵呵
我觉的你的考虑问题的方面还远不如BORLAND的程序员,学是慢慢学着吧