LCL: TCustomNotebook added workaround for win32/64 intf that does not send WMSize messages for hidden pages

git-svn-id: trunk@12494 -
This commit is contained in:
mattias 2007-10-16 21:57:11 +00:00
parent 8d2a89ca23
commit 3cf6a7f99d
2 changed files with 9 additions and 6 deletions

View File

@ -824,15 +824,18 @@ begin
// first make the new page visible
//DebugLn(['TCustomNotebook.ShowCurrentPage ',DbgSName(CurPage),' CurPage.Visible=',CurPage.Visible]);
if CurPage.Visible then begin
// TCustomPage.IsControlVisible is overriden
// therefore AutoSizing of childs was skipped => do it now
if FPageIndexOnLastShow<>fPageIndex then begin
FPageIndexOnLastShow:=fPageIndex;
// some widgetsets like win32/64 do not send WM_SIZE messages for
// hidden pages. Force resizing page (it is alClient).
ReAlign;
// TCustomPage.IsControlVisible is overriden
// therefore AutoSizing of childs was skipped => do it now
CurPage.ReAlign;
end;
end else begin
CurPage.Visible := true;
end;
FPageIndexOnLastShow:=fPageIndex;
CurPage.DoShow;
if (FPageIndexOnLastChange >= 0) and (FPageIndexOnLastChange < PageCount) and
(FPageIndexOnLastChange <> FPageIndex) then

View File

@ -25,9 +25,9 @@
// {$DEFINE ASSERT_IS_ON}
{$ENDIF}
{off $DEFINE CHECK_POSITION}
{ $DEFINE CHECK_POSITION}
{$IFDEF CHECK_POSITION}
const CheckPostionClassName = 'xxTHintWindow';
const CheckPostionClassName = 'xxxTPage';
const CheckPostionName = 'xxxPathsPage';
function CheckPosition(AControl: TControl): boolean;
@ -5839,7 +5839,7 @@ var
NewBoundsRealized: TRect;
begin
{$IFDEF VerboseSizeMsg}
//if CheckPosition(Self) then
if CheckPosition(Self) then
DebugLn(['TWinControl.WMSize A ',Name,':',ClassName,' Message=',Message.Width,',',Message.Height,
' BoundsRealized=',dbgs(FBoundsRealized),' FromIntf=',(Message.SizeType and Size_SourceIsInterface)>0]);
{$ENDIF}