Alex2013 писал(а):По поводу дженериков: что-то я не видел, что их начинают массово применять в новых релизах LCL что (ИМХО) плохой знак.
LCL в прямой зависимости от VCL по совместимости, как тока там, так тут же здесь.
при этом VCL на дженериках как то уныло получается, например, свойство Items: TStrings, по идее должно стать Items: TStrings<E is TObject> и что, при бросани TListBoxа на форму спрашивать что подставить вместо E? а как его задавать? TListBox<E is TObject> а Items: TStrings<E> ? и в "дфм" по умолчанию писать ListBox1: TListBox<TObject>? как то криво, сделать перегружаемый тип синоним для TStrings<E is TObject>, TStrings = TStrings<TObject>, тогда смысл теряется дженерика,
и это еще без учета что TStrings абстрактный класс, надо как то сделать проброс E на реализацию TStringList, property Items: TStrings<E is TObject> => FItems: TStringList<E is TObject>
кароче мутное это дело