请问动态如何获得popupmenu的高度?因为popupmenu要换皮肤,所以它的高度回改变,我想做出上拉的效果需要获得它的高度!改怎么做!
解决方案 »
- 如何获取某个控件的光标图片,将它旋转后重新生成一个新的光标?
- 一个登陆密码保存到数据库中如何在程序中改变后,让别人打开数据库也不知道密码是什么???
- RichEdit的打印问题
- 一个关于在图像中运用鼠标拖拉的问题?(急!!!)
- 我有一个问题,高手帮忙,急,关于数值的问题
- 怎么搜索一个目录里的文件(非可视控件),并且创建写文件(创建时向文件里写行数据)。filewrite为什么写的数据是乱码?
- 问一个傻傻的问题?
- 各位大哥帮帮忙!!!很急|〈〈重谢〉〉
- 如何实现:当鼠标在屏幕上(并非Form上)移动时,时时获得鼠标在屏幕上的坐标?
- 有誰用過TRXrichedit控件(俄羅斯人制作)
- 有谁知道李维的分布式多层应用的网址,在线等候!
- 在Delphi中我知道一个对象,但是只知道他的一个父类型,我如何根据这个对象来创建一个和他一样类型的对象?
var
pt : TPoint;
begin
pt := popupmenu1.popuppoint;
pt := Form1.ScreentoClient(pt);
end;
FORM1是popupmenu的container。如果要获得屏幕坐标,不需要第二句
Function TForm1.GetPopMenuHeight(Sender: TObject): Integer;
var
i,mHeight,sHeight: Integer;
vRect: TRect;
begin
sHeight := 0;
mHeight := 0;
for i := 0 to PopupMenu1.Items.Count - 1 do
begin
GetMenuItemRect(self.Handle, PopupMenu1.Handle, PopupMenu1.Items[i].MenuIndex, vRect);
mHeight := vRect.Bottom - vRect.Top; //每个菜单项的高度
sHeight := sHeight + mHeight;
end;
result := sHeight;
end;