Wäre es nicht näher dran, wenn du statt TObjectList eine eigene
TCollection nehmen würdest?
Eigentlch schon kam da aber nicht mit klar.
Beispiel:
Bei Add.
Da kann man ja nicht groß was übergeben.
Eine Collection enthält immer nur Einträge, die von CollectionItem abgeleitet sind. Solange dies nicht für TClsButtonInfo zutrifft (aktuell tut es das nicht), ist eine Collection eher eine zusätzliche Zwischenstufe. Wenn du nicht auf eine generische Liste oder gar auf Dictionary umsteigen willst, ist TObjectList auch ganz OK.
Vieles an deinem Code ist offensichtlich aus dem VB Programm übernommen - insofern würde man viele Dinge heute in Delphi von vornherein anders machen. Die implizite Verbindung von TClsButtonInfo.Num zum Index in FColButtons (ob nun -1 oder nicht) bringt m.E. einen überflüssigen Overhead in die Implementation. Ich vermute dort die meisten Macken.