rzpagecontrol 页头添加右键弹出菜单

pzr 2010-06-23 05:09:38
如标题:
function TForm1.getrect(Sender:Tobject;index:Integer):Trect;
var
RE:Trect;
i:Integer;
begin
SendMessage(RzPageControl1.Handle, TCM_GETITEMRECT, I, LPARAM(@Re));
result:=Re;
end;


procedure TForm1.RzPageControl1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
i:Integer;
R:TRect;
p:TPoint;
begin
if not (Button in [mbRight]) then Exit;
GetCursorPos(p);
for i := 0 to RzPageControl1.PageCount - 1 do
begin
//R :=RzPageControl1.TabRect(i); //当为pagecontrol时可以这么写,rzpagecontrol没有这个属性
R := getRect(rzpagecontrol1,i);
if (R.Left <=X) and (R.Right>=X) and (R.Top <=Y) and (R.Bottom>=Y) then
begin
RzPageControl1.ActivePageIndex := i;
PopupMenu1.Popup(p.X,p.Y);//弹出菜单
break;
end;
end;

end;

procedure TForm1.aa1Click(Sender: TObject);
begin
rzpgcntrl_maindh.ActivePage.Free;
end;
目的在tab上添加一右键功能,实现关闭tab,该功能一直无法实现,望帮助,谢谢!!!
...全文
156 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yinghuigu 2012-02-27
  • 打赏
  • 举报
回复
procedure TfrmMain.RzPageControl1MouseUp(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
i:Integer;
p:TPoint;
begin
if not (Button in [mbRight]) then Exit;
GetCursorPos(p);
i := RzPageControl1.TabAtPos(X,Y);
if (i>=0) then
begin
RzPageControl1.ActivePageIndex := i;
PopupMenu1.Popup(p.X,p.Y);//弹出菜单
end;
end;
pzr 2010-06-25
  • 打赏
  • 举报
回复
#3楼的朋友,有没有类似的案例啊,发过来看看呀!
此问题已解决!
iamduo 2010-06-25
  • 打赏
  • 举报
回复
OnMouseUp 里写代码控制。
tataishan 2010-06-25
  • 打赏
  • 举报
回复
这问题不是很难吧 用两个 PopupMenu

页头一个

分页一个

分页的PopupMenu设置为空的就可以了
genispan 2010-06-23
  • 打赏
  • 举报
回复
RZ控件不行 楼主直接用D自带的Pagecontrol是可以的
genispan 2010-06-23
  • 打赏
  • 举报
回复
你的几个tab都是动态创建的么? 还是仅仅隐藏tab?

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧