lcl: fix memory and GDI resource leakage related to docking by Anton Kavalenka (issue #0015342)

git-svn-id: trunk@23144 -
This commit is contained in:
paul 2009-12-15 03:56:41 +00:00
parent 7cbceba61c
commit de7f2b3c91
2 changed files with 12 additions and 8 deletions

View File

@ -979,10 +979,14 @@ begin
if FTopZone.FirstChild = nil then
exit; //no zones - nothing to paint
ACanvas := TCanvas.Create;
ACanvas.Handle := DC;
GetCursorPos(MousePos);
MousePos := DockSite.ScreenToClient(MousePos);
PaintZone(FTopZone);
try
ACanvas.Handle := DC;
GetCursorPos(MousePos);
MousePos := DockSite.ScreenToClient(MousePos);
PaintZone(FTopZone);
finally
Acanvas.Free;
end;
end;
procedure TEasyTree.RemoveControl(Control: TControl);

View File

@ -27,13 +27,13 @@ begin
end;
procedure DestroyDockHeaderImages;
//var ImageKind: TDockHeaderImageKind;
var
ImageKind: TDockHeaderImageKind;
begin
//called from unit finalization only!
{ this code can result in crashes, due to missing handles
//called from unit finalization only!
// this code can result in crashes, due to missing handles
for ImageKind := Low(TDockHeaderImageKind) to High(TDockHeaderImageKind) do
FreeAndNil(DockBtnImages[ImageKind]);
}
end;