Mega Code Archive

 
Categories / Delphi / Examples
 

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;