lazarus/lcl/include/page.inc
pascal e9f700554a fixed missing brackets
git-svn-id: trunk@63789 -
2020-08-19 08:19:13 +00:00

94 lines
2.6 KiB
PHP

{%MainUnit ../extctrls.pp}
{******************************************************************************
TPage
******************************************************************************
*****************************************************************************
This file is part of the Lazarus Component Library (LCL)
See the file COPYING.modifiedLGPL.txt, included in this distribution,
for details about the license.
*****************************************************************************
}
{ TPage }
procedure TPage.SetParent(AParent: TWinControl);
var
OldParent: TWinControl;
ParentNotebook: TNotebook;
i: integer;
begin
if (AParent = Parent) {or (pfInserting in FFlags)} then Exit;
OldParent := Parent;
inherited SetParent(AParent);
if Parent is TNotebook then
begin
// add to new pagelist
ParentNotebook := TNotebook(Parent);
i := ParentNotebook.Pages.IndexOfObject(Self);
if i < 0 then
ParentNotebook.Pages.AddObject(Name, Self);
end;
//if old and new parent is a TNotebook then remove the page from the old one
if (OldParent is TNotebook) and
not (csDestroying in OldParent.ComponentState) then
begin
// remove from old pagelist
ParentNotebook := TNotebook(OldParent);
i := ParentNotebook.FPages.IndexOfObject(Self);
ParentNotebook.Pages.Delete(i);
end;
end;
constructor TPage.Create(TheOwner: TComponent);
begin
inherited Create(TheOwner);
ControlStyle := ControlStyle +
[csAcceptsControls, csDesignFixedBounds, csNoDesignVisible, csNoFocus];
// height and width depends on parent, align to client rect
Align := alClient;
Caption := '';
Visible := False;
end;
destructor TPage.Destroy;
var
aIndex: Integer;
begin
{$ifdef DEBUG_NEW_NOTEBOOK}
DebugLn('[TPage.Destroy]');
{$endif}
if (Parent is TNotebook) and not (csDestroying in Parent.ComponentState) then
begin
{$ifdef DEBUG_NEW_NOTEBOOK}
DebugLn('[TPage.Destroy] FPages.Remove(Self)');
{$endif}
aIndex := TNotebook(Parent).FPages.IndexOfObject(Self);
TNotebook(Parent).FPages.Delete(aIndex);
end;
inherited Destroy;
end;
function TPage.GetPageIndex: Integer;
begin
if Parent is TNotebook then
Result := TNotebook(Parent).IndexOf(Self)
else
Result := -1;
end;
class procedure TPage.WSRegisterClass;
begin
inherited WSRegisterClass;
RegisterPropertyToSkip(TPage, 'ClientHeight', 'This property was published for a long time in Lazarus 0.9.31', '');
RegisterPropertyToSkip(TPage, 'ClientWidth', 'This property was published for a long time in Lazarus 0.9.31', '');
end;
// included by extctrls.pp