pannel2上放置TSpeeddButton和TfcShapeBtn
然后菜单分别在这两种按钮的右上角上popup
TSpeedButton上的正好在其右上角popup菜单出来,
但TfcShapeBtn的相隔很远距离,达不到效果了很可能width、Height属性使用的尺度单位不一样造成的//TSpeeddButton:
function TFormMain.client2screenEx(btn:TSpeedButton):Tpoint;
var
p:tpoint;
begin
p.X:=0;
p.Y:=0;
p.X:=btn.Left + btn.Width;
p.Y :=btn.Top;
p:=panel2.ClientToScreen(p);
result:=p;
end;//引用
procedure TFormMain.btnReconnectClick(Sender:TObject);
var
pt:Tpoint;
begin
pt:=client2screenEx(btnReconnect);
menuGetBack.Popup(pt.X ,pt.Y);
end;//btnReconnect为Tspeedbutton,效果很好//TfcShapeBtn
function TFormMain.client2screen(btn:TfcShapeBtn):Tpoint;
var
p:tpoint;
begin
p.X:=0;
p.Y:=0;
p.X:=btn.Left + btn.Width;
p.Y :=btn.Top;
p:=panel2.ClientToScreen(p);
result:=p;
end;
//引用
pt:=client2screen(btnTransfer);//btnTransfer为TfcShapeBtn
MenuTransfer.Popup(pt.X ,pt.Y);//结果,菜单popup的位置不对
然后菜单分别在这两种按钮的右上角上popup
TSpeedButton上的正好在其右上角popup菜单出来,
但TfcShapeBtn的相隔很远距离,达不到效果了很可能width、Height属性使用的尺度单位不一样造成的//TSpeeddButton:
function TFormMain.client2screenEx(btn:TSpeedButton):Tpoint;
var
p:tpoint;
begin
p.X:=0;
p.Y:=0;
p.X:=btn.Left + btn.Width;
p.Y :=btn.Top;
p:=panel2.ClientToScreen(p);
result:=p;
end;//引用
procedure TFormMain.btnReconnectClick(Sender:TObject);
var
pt:Tpoint;
begin
pt:=client2screenEx(btnReconnect);
menuGetBack.Popup(pt.X ,pt.Y);
end;//btnReconnect为Tspeedbutton,效果很好//TfcShapeBtn
function TFormMain.client2screen(btn:TfcShapeBtn):Tpoint;
var
p:tpoint;
begin
p.X:=0;
p.Y:=0;
p.X:=btn.Left + btn.Width;
p.Y :=btn.Top;
p:=panel2.ClientToScreen(p);
result:=p;
end;
//引用
pt:=client2screen(btnTransfer);//btnTransfer为TfcShapeBtn
MenuTransfer.Popup(pt.X ,pt.Y);//结果,菜单popup的位置不对
解决方案 »
- MainMenu循环隐藏显示的问题
- 简单问题
- 求XP Group控件包下載地址?
- 关于ado的问题!急死人呀!
- 窗体间值传递
- 我使用InstallShield将我做好了的程序打包,在另外一台没有装BDE的机器上安装后运行程序,提示没安装DB-Libary通信层
- 在线等待:我的Locate()错在何处?急急急!
- 急急急....................
- 怎样在Tmemo中获得鼠标所处的位置是第几个字符,或者想吧鼠标移到某一字符前面
- 转载一篇文章,希望对怀疑Delphi的人有所帮助,至于你坚决不喜欢Delphi,随便
- 大家好,如何用VB写虚拟鼠标点击执行具体路径的EXE 谢谢!!加分 100
- 有关DBGridEh显示数据的问题?
pt:=fcShapeBtn1.ClientToScreen(pt);
pt.x:=pt.x + fcShapeBtn1.width;
MenuTransfer.Popup(pt.X ,pt.Y);
这样就解决了