qt: fix crash on recreating TCustomControl descendants

git-svn-id: trunk@13889 -
This commit is contained in:
paul 2008-01-26 18:58:06 +00:00
parent 1d29c3e238
commit 4c2fed68d4

View File

@ -313,6 +313,7 @@ type
procedure setVerticalScrollBar(AScrollBar: TQtScrollBar);
procedure setVisible(visible: Boolean); override;
procedure viewportNeeded;
procedure viewportDelete;
end;
{ TQtViewPort }
@ -6864,8 +6865,7 @@ begin
{$ifdef VerboseQt}
WriteLn('TQAbstractScrollArea.Destroy');
{$endif}
if Assigned(FViewPortWidget) then
FreeAndNil(FViewPortWidget);
viewportDelete;
inherited Destroy;
end;
@ -7127,6 +7127,18 @@ begin
setViewport(FViewPortWidget.Widget);
end;
procedure TQtAbstractScrollArea.viewportDelete;
var
NilMethod: TMethod;
begin
if Assigned(FViewPortWidget) then
begin
FillChar(NilMethod, SizeOf(NilMethod), 0);
QLCLAbstractScrollArea_override_viewportEvent(QLCLAbstractScrollAreaH(Widget), NilMethod);
FreeAndNil(FViewPortWidget);
end;
end;
{------------------------------------------------------------------------------
Function: TQtAbstractScrollArea.setScrollStyle
Params: None