lcl: fix TPageContol.OnChange event

git-svn-id: trunk@22037 -
This commit is contained in:
paul 2009-10-05 06:26:12 +00:00
parent 6d32896b7f
commit c8b4ccad1f
4 changed files with 20 additions and 6 deletions

View File

@ -270,8 +270,8 @@ type
TPageControl = class(TCustomNotebook) TPageControl = class(TCustomNotebook)
private private
fOnPageChanged: TNotifyEvent;
FPageToUndock: TTabSheet; FPageToUndock: TTabSheet;
FOnChange: TNotifyEvent;
function GetActivePageIndex: Integer; function GetActivePageIndex: Integer;
function GetActiveTabSheet: TTabSheet; function GetActiveTabSheet: TTabSheet;
function GetTabIndex: Integer; function GetTabIndex: Integer;
@ -287,6 +287,7 @@ type
State: TDragState; var Accept: Boolean); override; State: TDragState; var Accept: Boolean); override;
procedure DoRemoveDockClient(Client: TControl); override; procedure DoRemoveDockClient(Client: TControl); override;
function DoUndockClientMsg(NewTarget, Client: TControl):boolean; override; function DoUndockClientMsg(NewTarget, Client: TControl):boolean; override;
procedure DoChange; override;
public public
constructor Create(TheOwner: TComponent); override; constructor Create(TheOwner: TComponent); override;
function FindNextPage(CurPage: TTabSheet; function FindNextPage(CurPage: TTabSheet;
@ -331,7 +332,7 @@ type
property TabStop; property TabStop;
//property TabWidth; //property TabWidth;
property Visible; property Visible;
property OnChange: TNotifyEvent read fOnPageChanged write fOnPageChanged; property OnChange: TNotifyEvent read FOnChange write FOnChange;
property OnChanging; property OnChanging;
property OnContextPopup; property OnContextPopup;
property OnDockDrop; property OnDockDrop;

View File

@ -187,6 +187,7 @@ type
class procedure WSRegisterClass; override; class procedure WSRegisterClass; override;
procedure CreateWnd; override; procedure CreateWnd; override;
procedure DoCreateWnd; virtual; procedure DoCreateWnd; virtual;
procedure DoChange; virtual;
procedure Change; virtual; procedure Change; virtual;
procedure Loaded; override; procedure Loaded; override;
procedure ReadState(Reader: TReader); override; procedure ReadState(Reader: TReader); override;

View File

@ -271,6 +271,12 @@ begin
end; end;
end; end;
procedure TCustomNotebook.DoChange;
begin
if Assigned(OnPageChanged) then
OnPageChanged(Self);
end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
Method: TCustomNotebook.Destroy Method: TCustomNotebook.Destroy
Params: None Params: None
@ -452,9 +458,8 @@ begin
FPageIndex := AValue; FPageIndex := AValue;
UpdateAllDesignerFlags; UpdateAllDesignerFlags;
DoSendPageIndex; DoSendPageIndex;
if ([csDesigning, csLoading, csDestroying] * ComponentState = []) if ([csDesigning, csLoading, csDestroying] * ComponentState = []) then
and Assigned(OnPageChanged) then DoChange;
OnPageChanged(Self);
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------
@ -797,7 +802,7 @@ begin
ShowCurrentPage; ShowCurrentPage;
FPageIndexOnLastChange := FPageIndex; FPageIndexOnLastChange := FPageIndex;
if ([csLoading,csDestroying]*ComponentState=[]) and (not FAddingPages) then if ([csLoading,csDestroying]*ComponentState=[]) and (not FAddingPages) then
if Assigned(FOnPageChanged) then FOnPageChanged(Self); DoChange;
end; end;
procedure TCustomNotebook.Loaded; procedure TCustomNotebook.Loaded;

View File

@ -118,6 +118,13 @@ begin
Result := inherited DoUndockClientMsg(NewTarget, Client); Result := inherited DoUndockClientMsg(NewTarget, Client);
end; end;
procedure TPageControl.DoChange;
begin
inherited DoChange;
if Assigned(OnChange) then
OnChange(Self);
end;
constructor TPageControl.Create(TheOwner: TComponent); constructor TPageControl.Create(TheOwner: TComponent);
begin begin
PageClass:=TTabSheet; PageClass:=TTabSheet;