delover
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору A_V Цитата: Сount + Len + CodeAddress | Count да, CodeAddress нет, Len нет. Len это непонятные байты которые даже не помогают вычислить разницу между адресом Count и "CodeAddress" (проверено в CPU). Кстати "CodeAddress" это похоже адрес следующей пачки паблишед или ещё чего. Цитата: и в данном коде, рассчитаном на то что паблишед метод всего один в классе, разницы нет, новый rtti или старый | Нет. В данном коде расчитано что будет Код: TTestCheck = class(TTestCheckComponent) published procedure TestProc1(IsList: Boolean); procedure TestProc2(IsList: Boolean); procedure TestProc3(IsList: Boolean); procedure TestProc4(IsList: Boolean); procedure TestProc5(IsList: Boolean); procedure TestProc6(IsList: Boolean); ... procedure TestProcN(IsList: Boolean); end; | Цитата: и выглядит это, как полная галиматья, если честно =) | Могу выложить полный код, он берёт исходники библиотеки компонентов, вычисляет из исходников текст типа TClass1.Proc1 и штампует заранее известный объект TTestCheck с заранее известными паблишед процедурами (для теста каждого метода). Задача была только подготовить обёртку, которую будут заполнять тестеры. Обязательно чтобы объект назывался только так, обязательно чтобы процедуры назывались только так. Это требование заказчика, то есть это бизнес-логика процесса. Собираю от тестеров объекты. Выдёргиваю от каждого методы. Проставляю цифирки. Запускаю точно так же. В целом, все, моим кодом остались довольны. Цитата: это не пример разницы в rtti, а того что в 2010-х появилась объектная обертка | Мне почему-то ничего это не сказало. Типа "это не лимузин, а это всего лишь машина с кузовом лимузина и внутренностями лимузина". Я лично преследовал цель показать, что для паблишед сейчас "защищённые" методы программирования (+8 в 64 бит рухнуло бы). В любой новой версии +8 могло бы поменяться (то есть код, из практики, был бы бесполезен) Цитата: они (генерики) появились с D2009 | Возможно, спасибо за уточнение, но я писал ~2010. Генерики тут при том, что я не знал с чем связать и воткнул генерики, 2009 компилятора в реальности не существует - это выдумка Голливуда (шутка). Цитата: AClassName в 'генерик' коде тоже за гранью добра и зла =) | Проснитесь. Не спите, друг мой, обсуждение этой (честно говоря) хрени даже не планировалось. |