请教高手如何实现双击TabSheet将其Free掉。
谢!

解决方案 »

  1.   

    如果想让TabSheet响应鼠标双击的事件,那么可以做到。但是想要双击把它Free掉的话,应该是会出错的。至少我做不出来,看看其他人的办法吧。TabSheet响应鼠标双击的事件:
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        OldWProc :TWndMethod;
      public
        { Public declarations }
        procedure WinProc(var message :TMessage);
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
    begin
      OldWProc := TabSheet1.WindowProc;
      TabSheet1.WindowProc := WinProc;
    end;procedure TForm1.WinProc(var message: TMessage);
    begin
      if message.Msg = WM_LBUTTONDBLCLK then
      begin
        ShowMessage('Catch WM_LBUTTONDBLCLK');
      end;
      if Assigned(OldWProc) then  OldWProc(message);
    end;
      

  2.   

    private
        { Private declarations }
        FTickCount: DWORD;
    .........procedure TForm1.PageControl1MouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    begin
      if GetTickCount - FTickCount <= GetDoubleClickTime then
        if Assigned(TPageControl(Sender).ActivePage) then
          TPageControl(Sender).ActivePage.Free;
      FTickCount := GetTickCount;
    end;procedure TForm1.PageControl1Change(Sender: TObject);
    begin
      FTickCount := 0;
    end;