LCL: TabControl refactor

git-svn-id: trunk@42594 -
This commit is contained in:
martin 2013-09-04 10:17:31 +00:00
parent 378550a77a
commit 32a6a28ad6
3 changed files with 13 additions and 8 deletions

View File

@ -363,6 +363,7 @@ type
procedure UpdateDesignerFlags(APageIndex: integer);
protected
PageClass: TCustomPageClass;
function GetPageClass: TCustomPageClass; virtual;
procedure CNNotify(var Message: TLMNotify); message CN_NOTIFY;
class procedure WSRegisterClass; override;
procedure CreateWnd; override;
@ -505,6 +506,7 @@ type
function FindPageWithDockClient(Client: TControl): TTabSheet;
protected
class procedure WSRegisterClass; override;
function GetPageClass: TCustomPageClass; override;
procedure DoAddDockClient(Client: TControl; const ARect: TRect); override;
procedure DockOver(Source: TDragDockObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); override;
@ -512,7 +514,6 @@ type
function DoUndockClientMsg(NewTarget, Client: TControl):boolean; override;
function ChildClassAllowed(ChildClass: TClass): boolean; override;
public
constructor Create(TheOwner: TComponent); override;
function FindNextPage(CurPage: TTabSheet;
GoForward, CheckTabVisible: Boolean): TTabSheet;
procedure SelectNextPage(GoForward: Boolean);

View File

@ -203,7 +203,7 @@ end;
------------------------------------------------------------------------------}
constructor TCustomTabControl.Create(TheOwner: TComponent);
begin
if PageClass=nil then PageClass := TCustomPage;
if PageClass=nil then PageClass := GetPageClass;
inherited Create(TheOwner);
@ -849,6 +849,11 @@ begin
Page[APageIndex].ControlStyle-[csNoDesignVisible];
end;
function TCustomTabControl.GetPageClass: TCustomPageClass;
begin
Result := TCustomPage;
end;
class procedure TCustomTabControl.WSRegisterClass;
begin
inherited WSRegisterClass;

View File

@ -64,6 +64,11 @@ begin
RegisterPropertyToSkip(TPageControl, 'TabFont', 'Needed when converting from VCL TabbedNotebook to TPageControl', '');
end;
function TPageControl.GetPageClass: TCustomPageClass;
begin
Result := TTabSheet;
end;
procedure TPageControl.DoAddDockClient(Client: TControl; const ARect: TRect);
var
TabSheet: TTabSheet;
@ -111,12 +116,6 @@ begin
if Widgetset.GetLCLCapability(lcAllowChildControlsInNativeControls) = LCL_CAPABILITY_YES then Result := True;
end;
constructor TPageControl.Create(TheOwner: TComponent);
begin
PageClass:=TTabSheet;
inherited Create(TheOwner);
end;
function TPageControl.FindNextPage(CurPage: TTabSheet; GoForward,
CheckTabVisible: Boolean): TTabSheet;
var