我觉得可以借鉴POWERPOINT的特点。你可以将每页的
"关闭“写成public,再在鼠标的那个函数中将它们
读出,我也是初学者,仅供参考。

解决方案 »

  1.   

    在事件OnDrawTab里,给了每个Tab的索引号和位置(RECT)。你可以在这个事件里将每个Tab的位置保存下来,然后在Close函数里就可以用了。
      

  2.   

    如果是这样的话!程序怎么知道他要关闭哪一个呢?
    除非你得在你的菜单中罗列出所有的TabSheet,让用户选一个
    之后,就是:
    If Assgin(TabSheet)<>nil then TabSheet.Free;大概就是这样,有什么问题再提!
      

  3.   

    可以把处理过程放在MouseDown事件里
      

  4.   

    用 Windows API 可以很容易办到。我是使用C++Builder的,Delphi不熟,
    如果下面有语法方面的错误,你就自己改正,重要的是方法。
    procedure TForm1.PageControl1MouseDown(Sender: TObject;
        Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var
      Index: Integer;
      hti: TC_HITTESTINFO;
    begin
        if Button = mbRight then
        begin
          hti.flags := TCHT_ONITEM;
          hti.pt.x := X;  hti.pt.y := Y;
          Index := TabCtrl_HitTest(PageControl1.Handle, hti);
          //这儿 Index 就是Tab的索引号,加入你的其它代码
        end;
    end;