• 左键双击关闭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中保存窗体指针地址,销毁时根据这个地址去处理
  • 相关阅读:
    洛谷 P1097 统计数字
    个人冲刺09
    《需求工程 ——软件建模与分析》读书笔记02
    个人冲刺08
    《需求工程 ——软件建模与分析》读书笔记01
    个人冲刺07
    个人冲刺06
    个人冲刺05
    个人冲刺04
    个人冲刺03
  • 原文地址:https://www.cnblogs.com/tc310/p/10857839.html
Copyright © 2020-2023  润新知