Author: Tomas Rutkauskas
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.
Answer:
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 work around to this is to manually clear the listbox when the form is destroyed:
1 procedure TForm1.FormDestroy(Sender: TObject);
2 begin3 CheckListBox1.Items.Clear;
4 inherited;
5 end;