![]() |
|
|
|
|
#1
|
||||
|
||||
|
http://decoding.narod.ru/practic/cla...stitution.html
Какие плюсы и минусы есть у такого подхода? Например зареинтродьюсить некий метод можно? Последний раз редактировалось M.A.D.M.A.N., 30.09.2012 в 21:44. |
|
#2
|
||||
|
||||
|
Цитата:
Поэтому я написал небольшой модуль который прописываю в uses модуля где лежит TListView (главное прописать после модуля ComCtrls ). И получается что хотя фактически в DesignTime лежит обыкновенный TListView, но в откомпилированной программе используется уже подменённый с которым я могу проделывать такие вещи:Код:
ListView1.Values[10, 5] := 'Колонка №10, Строка №5'; // Или так: ListView1.Items[5].Values[10] := 'Колонка №10, Строка №5'; ![]() |
|
#3
|
||||
|
||||
|
Цитата:
P.S. Так как мои проекты, это в основном API, то для ListView у меня полностью свой модуль имеется. |
|
#4
|
||||
|
||||
|
Цитата:
![]() |
|
#5
|
||||
|
||||
|
Ну вот, перегруженный конструктор зареинтродьюсить не получается.
Приходится делать реинтродьюс на все конструкторы. |
|
#6
|
||||
|
||||
|
И еще, как быть с потомками, например чтоб подменил общего дельфового предка и все дельфовые потомки от этого класса обращались к подмененному классу.
Я так понимаю придется опять делать шаманство, получать адреса нужных ф-ий предкового класса, внутрь вписывать джамп. Может есть что-то проще? |
|
#7
|
||||
|
||||
|
Ладно, пофиг, проще переопределить нужные классы и зареинтродьюсить на всех одно и то же.
Спасибо всем, кто участвовал в дискуссии. |