Nicht getestet, aber ich würde auch die Events löschen.
Delphi-Quellcode:
procedure TForm1.RemoveBtnClick(Sender: TObject);
begin
if ListBox1.Count > 0 then
begin
// So inder Art ...
btn := ListBox1.ListItems[0].FindSpeedButton; // Müsste man in den Child-Compoents suchen ...
btn.OnClick := nil;
btn := nil;
ListBox1.ListItems[0].Free;
end;
end;
Damit nicht ein Event auf ein gelöschtes Control gefeuert wird.
Rollo