Ukrycie zakładek tab w kontrolce PageControl w Delphi

Dzisiaj szybko musiałem pozbyć się nagłówków z kontrolki PageControl i przygotowałem zmodyfikowany komponent dla Delphi – PageControlEx z opcją ukrywania nagłówków.

////////////////////////////////////////////////////////////////////////////////
//
// Custom PageControlEx component with hidden page tabs
//
// Bartosz Wójcik | www.pelock.com
//
////////////////////////////////////////////////////////////////////////////////

unit PageControlEx;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  ExtCtrls, StdCtrls, ComCtrls;

Type

  TPageControlEx = class(TPageControl)

  private
    FHideHeader: Boolean;
    procedure SetHideHeader(const Value: Boolean);
  protected
    procedure WndProc(var Msg: TMessage); override;
  published
    property HideHeader:Boolean read FHideHeader Write SetHideHeader;
  End;

procedure Register;

implementation

procedure TPageControlEx.WndProc(var Msg: TMessage);
begin
  // hide header via intercepting TCM_ADJUSTRECT message
  if (FHideHeader = True) and (Msg.Msg = $1328) then
    Msg.Result := 1
   else
    inherited;
end;

procedure TPageControlEx.SetHideHeader(const Value: Boolean);
begin
  FHideHeader := Value;
end;

procedure Register;
begin
  RegisterComponents('PELock', [TPageControlEx])
end;

end.