RxFPC: fix AV in TPageManager

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@3782 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2014-11-26 13:10:11 +00:00
parent f4f6085351
commit 192e1008cc

View File

@ -79,8 +79,10 @@ type
function GetPriorPageIndex(Page: Integer): Integer; virtual; function GetPriorPageIndex(Page: Integer): Integer; virtual;
function GetNextPageIndex(Page: Integer): Integer; virtual; function GetNextPageIndex(Page: Integer): Integer; virtual;
procedure Loaded; override; procedure Loaded; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
public public
constructor Create(AOwner: TComponent); virtual; constructor Create(AOwner: TComponent); override;
procedure CheckBtnEnabled; procedure CheckBtnEnabled;
procedure NextPage; procedure NextPage;
procedure PriorPage; procedure PriorPage;
@ -292,6 +294,32 @@ begin
end; end;
end; end;
procedure TPageManager.Notification(AComponent: TComponent;
Operation: TOperation);
begin
inherited Notification(AComponent, Operation);
if Operation = opRemove then
begin
if AComponent = FNextBtn then
begin
FNextBtn:=nil;
FSaveBtnNextClick:=nil;
end
else
if AComponent = FPriorBtn then
begin
FPriorBtn:=nil;
FSaveBtnPriorClick:=nil;
end
else
if AComponent = FPageOwner then
FPageOwner:=nil
else
if AComponent = FStatusControl then
FStatusControl:=nil;
end;
end;
constructor TPageManager.Create(AOwner: TComponent); constructor TPageManager.Create(AOwner: TComponent);
begin begin
inherited Create(AOwner); inherited Create(AOwner);
@ -303,8 +331,10 @@ var
P:integer; P:integer;
begin begin
P:=PageIndex; P:=PageIndex;
FNextBtn.Enabled:=GetNextPageIndex(P)>P; if Assigned(FNextBtn) then
FPriorBtn.Enabled:=GetPriorPageIndex(P)<P; FNextBtn.Enabled:=GetNextPageIndex(P)>P;
if Assigned(FPriorBtn) then
FPriorBtn.Enabled:=GetPriorPageIndex(P)<P;
end; end;
procedure TPageManager.NextPage; procedure TPageManager.NextPage;