From c8b4ccad1f94658154ec16f98a46c7fea3614dde Mon Sep 17 00:00:00 2001 From: paul Date: Mon, 5 Oct 2009 06:26:12 +0000 Subject: [PATCH] lcl: fix TPageContol.OnChange event git-svn-id: trunk@22037 - --- lcl/comctrls.pp | 5 +++-- lcl/extctrls.pp | 1 + lcl/include/customnotebook.inc | 13 +++++++++---- lcl/include/pagecontrol.inc | 7 +++++++ 4 files changed, 20 insertions(+), 6 deletions(-) diff --git a/lcl/comctrls.pp b/lcl/comctrls.pp index d7abb88709..2f37f0c7ae 100644 --- a/lcl/comctrls.pp +++ b/lcl/comctrls.pp @@ -270,8 +270,8 @@ type TPageControl = class(TCustomNotebook) private - fOnPageChanged: TNotifyEvent; FPageToUndock: TTabSheet; + FOnChange: TNotifyEvent; function GetActivePageIndex: Integer; function GetActiveTabSheet: TTabSheet; function GetTabIndex: Integer; @@ -287,6 +287,7 @@ type State: TDragState; var Accept: Boolean); override; procedure DoRemoveDockClient(Client: TControl); override; function DoUndockClientMsg(NewTarget, Client: TControl):boolean; override; + procedure DoChange; override; public constructor Create(TheOwner: TComponent); override; function FindNextPage(CurPage: TTabSheet; @@ -331,7 +332,7 @@ type property TabStop; //property TabWidth; property Visible; - property OnChange: TNotifyEvent read fOnPageChanged write fOnPageChanged; + property OnChange: TNotifyEvent read FOnChange write FOnChange; property OnChanging; property OnContextPopup; property OnDockDrop; diff --git a/lcl/extctrls.pp b/lcl/extctrls.pp index e2ce829509..3c388f1b22 100644 --- a/lcl/extctrls.pp +++ b/lcl/extctrls.pp @@ -187,6 +187,7 @@ type class procedure WSRegisterClass; override; procedure CreateWnd; override; procedure DoCreateWnd; virtual; + procedure DoChange; virtual; procedure Change; virtual; procedure Loaded; override; procedure ReadState(Reader: TReader); override; diff --git a/lcl/include/customnotebook.inc b/lcl/include/customnotebook.inc index 72a5e8eafc..f1b36868e1 100644 --- a/lcl/include/customnotebook.inc +++ b/lcl/include/customnotebook.inc @@ -271,6 +271,12 @@ begin end; end; +procedure TCustomNotebook.DoChange; +begin + if Assigned(OnPageChanged) then + OnPageChanged(Self); +end; + {------------------------------------------------------------------------------ Method: TCustomNotebook.Destroy Params: None @@ -452,9 +458,8 @@ begin FPageIndex := AValue; UpdateAllDesignerFlags; DoSendPageIndex; - if ([csDesigning, csLoading, csDestroying] * ComponentState = []) - and Assigned(OnPageChanged) then - OnPageChanged(Self); + if ([csDesigning, csLoading, csDestroying] * ComponentState = []) then + DoChange; end; {------------------------------------------------------------------------------ @@ -797,7 +802,7 @@ begin ShowCurrentPage; FPageIndexOnLastChange := FPageIndex; if ([csLoading,csDestroying]*ComponentState=[]) and (not FAddingPages) then - if Assigned(FOnPageChanged) then FOnPageChanged(Self); + DoChange; end; procedure TCustomNotebook.Loaded; diff --git a/lcl/include/pagecontrol.inc b/lcl/include/pagecontrol.inc index edeb865b84..cb14d81cdd 100644 --- a/lcl/include/pagecontrol.inc +++ b/lcl/include/pagecontrol.inc @@ -118,6 +118,13 @@ begin Result := inherited DoUndockClientMsg(NewTarget, Client); end; +procedure TPageControl.DoChange; +begin + inherited DoChange; + if Assigned(OnChange) then + OnChange(Self); +end; + constructor TPageControl.Create(TheOwner: TComponent); begin PageClass:=TTabSheet;