Coders' Corner Search:
General :: Programming :: Delphi :: VCL
About the Delphi VCL (Visual Component Library)

Articles:


Featured Article

Memory leak in TCheckListBox

I just found a memory leak in TCheckListBox (while using Delphi 3).
Every time you check an item at runtime, a wrapper is created in routine TCheckListBox.GetWrapper in CheckLst.pas.

These wrappers were supposed to be freed in procedure TCheckListBox.DestroyWnd; but this procedure is never called. Therefore all these pointers will never be freed.

The workaround to this is to manually clear the listbox when the form is destroyed:

procedure TForm1.FormDestroy(Sender: TObject);
 begin
   CheckListBox1.Items.Clear;
   inherited;
 end;