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)
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;

View File

@ -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;

View File

@ -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;

View File

@ -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;