mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-12-29 08:20:36 +01:00
LCL: destroy TGraphicControl.Canvas.Handle when control is removed from parent. Issue #30003
git-svn-id: trunk@53254 -
This commit is contained in:
parent
643cbe0475
commit
0c617048fe
@ -6315,6 +6315,7 @@ end;
|
||||
procedure TWinControl.RemoveControl(AControl: TControl);
|
||||
var
|
||||
AWinControl: TWinControl;
|
||||
AGrControl: TGraphicControl;
|
||||
begin
|
||||
DisableAutoSizing{$IFDEF DebugDisableAutoSizing}('TWinControl.RemoveControl'){$ENDIF};
|
||||
try
|
||||
@ -6327,8 +6328,16 @@ begin
|
||||
AWinControl.DestroyHandle;
|
||||
end
|
||||
else
|
||||
begin
|
||||
if AControl is TGraphicControl then
|
||||
begin
|
||||
AGrControl := TGraphicControl(AControl);
|
||||
if (AGrControl.Canvas<>nil) then
|
||||
TControlCanvas(AGrControl.Canvas).FreeHandle;
|
||||
end;
|
||||
if HandleAllocated then
|
||||
AControl.InvalidateControl(AControl.IsVisible, False, True);
|
||||
end;
|
||||
Remove(AControl);
|
||||
Perform(CM_CONTROLLISTCHANGE, WParam(AControl), LParam(False));
|
||||
if not (csDestroying in ComponentState) then
|
||||
|
||||
Loading…
Reference in New Issue
Block a user