![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Alexeis |
|
|||
![]() Амеба ![]() Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Хотя надо отметить, что интерфейсы не слабо увеличивают размер каждого экземпляра объекта. Например исполнение 4х интерфейсов в объекте 4 * 4 = 16 байт плюс к размеру. Учитывая, что TObject будет уже исходно не 4, а 8 байт. 6й, 7й наследник будут уже 7 * 4 = 28 байт дополнительно. В принципе не критично учитывая что на каждый объект и так добавляется + 10 байт от менеджера кучи, но все равно расход имеется. Хорошо было б если это добро включалось директивой, $IFDEF STANDART_INTERFACESES.
Кстати есть вариант написать препроцессор и самому такое сделать(хотя бы до 5-10 самых используемых классов), после чего перекомиллировать VCL и попробовать скомпилировать так большой проект. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
Bose |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1458 Регистрация: 5.3.2005 Где: Riga, Latvia Репутация: 23 Всего: 51 |
Есть и другой. Кудесник Алексей Казанцев придумал и выложил у себя в блоге пример, навешивающий хук на метод TObject.GetInterface позволяющий добавить поддержку новых интерфейсов в старые классы. ![]() Пример показывает как добавить поддержку интерфейса ICaptionedControl к некоторым базовым контролам. Его легко можно доработать, реализовав пример с интерфейсами
p.s. it's a kind of magic |
|||
|
||||
mes |
|
||||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 1 Всего: 250 |
это только указатели на виртуальную таблицу, а еще сами таблицы увеличат размер библиотеки, хотя это уже мелочи.
имхо, можно не изменяя иерархии добавить адаптеры, предоставляющие нужные интерфейсы. |
||||
|
|||||
Альт |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.8.2008 Репутация: нет Всего: нет |
Лет шесть назад купил Rinse... от http://www.dimeric.com... в комплекте идет их пакет Utils... посмотрите на интерфейсы:
Dimeric Software Utilities Все объекты VCL легко обертываются интерфейсами вот такими методами: NewStringList где первый параметр - это любой созданный вами наследник TStrings (обычно TStringsList), а второй - это признак, что объект надо разрушить при занулении счетчика интерфейса. Аналогично с NewDataSetWrapper и т.д. Библиотека функционально огромна и стоит своих денег. Это сообщение отредактировал(а) Альт - 25.4.2009, 08:21 |
|||
|
||||
CodeMonkey |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1839 Регистрация: 24.6.2008 Где: Россия, Тверь Репутация: 38 Всего: 89 |
Да, только развитие её остановилось в 2005-м ;) -------------------- Опытный программист на C++ легко решает любые не существующие в Паскале проблемы. |
|||
|
||||
Альт |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 3.8.2008 Репутация: нет Всего: нет |
CodeMonkey, сложно придумать что-то новое в IList и IDataSet... стабильность у пакета 100%... покупал я ради Rinse, а утилиты пришли сверху довеском, как нижний слой реализации и свои деньги отработали еще на первом проекте ) пишу на семерках, но проекты собираются и на d2009 без всяких проблем... будет нужно, переведу... у меня сырцы ;))
А писал я к тому, что не требуется оборачивать VCL интерфейсами... это 100 лет умеют делать и сторонние библиотеки... к примеру еще есть RemObject ;) |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |