Bin mir jetzt nicht 100%ig sicher aber versuchs mal mit
Code:
fImageList := TImageList.Create(nil);
Falls du TImageList.Create(self); nimms, dann musst du die Komponente nicht freigeben. Das geschieht dann automatisch.
Müsste es nicht so aussehen:
Code:
for i := 0 to ButtonCount - 1 do
begin
Self.Buttons[i].Free;
end;