Показать сообщение отдельно
  #2  
Старый 30.09.2012, 22:11
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от M.A.D.M.A.N.
http://decoding.narod.ru/practic/cla...stitution.html

Какие плюсы и минусы есть у такого подхода?

Например зареинтродьюсить некий метод можно?
В одном своём проекте я использовал подмену класса TListView. Я использую TListView почти всегда в режиме vsReport (т.е. как Grid), но меня немного раздражает, что к первой колонке нужно обращаться как к Caption, а к остальным как к SubItems, да ещё если SubItems пустой и попытаться из его колонки прочитать, то ещё и ошибку получаем
Поэтому я написал небольшой модуль который прописываю в uses модуля где лежит TListView (главное прописать после модуля ComCtrls ). И получается что хотя фактически в DesignTime лежит обыкновенный TListView, но в откомпилированной программе используется уже подменённый с которым я могу проделывать такие вещи:
Код:
ListView1.Values[10, 5] := 'Колонка №10, Строка №5';
// Или так:
ListView1.Items[5].Values[10] := 'Колонка №10, Строка №5';
Работает нормально, глюков не наблюдал. Правильнее наверно было бы своего наследника TListView добавить в палитру компонентов и уже его бросать на форму, но что если я захочу открыть этот проект в другом месте где этот компонент не установлен? - нужно его доустанавливать, и так всякий раз.
Ответить с цитированием