当点击PageControl的title栏(也就是显示tabsheet的caption的那里), 弹出popupmenu1...点击PageControl的其他地方时不要弹出来喔...
解决方案 »
- SendMessage失败,什么原因?
- 在DELPHI中调用API函数 SetParent 的问题
- MDAC的问题,装了高版本的,还总是报还是2.1版本以下的
- 一个程序问题那为达人来指教小弟一下
- 如何将vfp语言转换在delphi语言?
- 想转DELPHI,不知道DELPHI写控制驱动方面麻烦吗?
- 怎样把MP3打包近EXE文件,不用按路径读取MP3文件
- 游戏录像机 金山游侠的游戏录像机是怎么做的? 高手进来解答,分数不够在加!
- **************有高手嘛?求助!!!怎样用Canvas画带箭头的直线??? (
- 求求各位大虾,帮忙看一下代码,急用,谢谢了
- sSkinManager显示按钮问题
- WSAGetLastError() 返回错误代码2,不知道是什么原因。
然后建一个空的PopupMenu,不添加子菜单的
然后选中每个tabSheet,把他们的PopupMenu设置为空PopupMenu
那tabsheet的位置变了呢
或者是又添加一个tabsheet
label这种方法弊端太多了
代码写在PageControl的MouseUp事件中
Delphi(Pascal) code
procedure TForm1.pgc1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i:Integer;
R:TRect;
p:TPoint;
begin
GetCursorPos(p);
for i := 0 to pgc1.PageCount - 1 do
begin
R := pgc1.TabRect(i);
if (R.Left<=X) and (R.Right>=X) and (R.Top<=Y) and (R.Bottom>=Y) then
begin
pgc1.ActivePageIndex := i;
pm1.Popup(p.X,p.Y);//弹出菜单
break;
end;
end;
end;
因为bdmh可以捕捉到当前点击的tabsheet....
ComCtrls单元的,不知你那有没有,应该有
function TCustomTabControl.TabRect(Index: Integer): TRect;
begin
TabCtrl_GetItemRect(Handle, Index, Result);
end;
PageControl 确实有 TabRect,
RzPageControl 没有....