左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样

左键双击关闭pagecontrol中的一个分页即一个tabsheet,功能像遨游浏览器一样

procedure TfrmServerSetup.PageControl1MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
Index: Integer;
begin
//左键点击并且双击
if (Button = mbLeft) and (ssDouble in Shift) then
begin
   Index := PageControl1.IndexOfTabAt(X, Y);
   if Index >= 0 then
     PageControl1.Pages[Index].Free;
end;
end;


//根据名称检查tab是否已经存在
function FindTab(pagecontrol:TPageControl;tabName:string):integer;
var
  i:integer;
begin
  Result := -1;
  for i := 0 to pagecontrol.PageCount - 1 do
  begin
    if pagecontrol.Pages[i].Name = tabName then
    begin
      Result := i;
      Break;
    end;
  end;
end;

procedure FormToSheet(pagecontrol:TPageControl;frm:TForm;tabName,tabCaption:string);
var
  i:integer;
  tab:TTabSheet;
begin
  i := FindTab(pagecontrol,tabName);
  if i > 0 then
  begin
    pagecontrol.Pages[i].TabVisible := True;
    pagecontrol.ActivePageIndex := i;
  end
  else
  begin
    tab := TTabSheet.Create(pagecontrol);
    tab.Name := tabName;
    tab.Caption := tabCaption;
    tab.PageControl := pagecontrol;
    pagecontrol.ActivePage := tab;
    frm.ParentWindow := tab.Handle;
    frm.Tag :=tab.TabIndex;
    tab.InsertControl(frm);
    frm.Show;
  end;
  frm.Show;
end;
//销毁时,可以查找tab上的组件,找到窗体,然后freeandnil,当然也可以通过指针处理,在tag中保存窗体指针地址,销毁时根据这个地址去处理


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值