![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неиспользуемые модули [D7]
Karluha © (2005-07-19 14:23:00)Суть проблемы такова: я решил удалить из проекта все неиспользуемые модули из uses. Есть множество утилит, позволяющий их определить. Все вроде хорошо, но когда я удаляю некоторые из них, интеллектуальная Delphi IDE сама добавляет некоторые из них, хотя в действительности они в модуле не используются. Вопрос: как сделать Delphi IDE немного глупее?
Karluha (2005-07-19 18:37:00) [21]Знаешь, для того чтобы понять, что если в проэкте используется класс TChild = class(TParent), то в проэкт гарантированно включен юнин, в котором описан TParent большого ума не надо. Для этого нужно лишь знать, что такое наследование. Разработчики IDE это знают, а ты нет, вот и вся разница..
Мне кажутся весьма забавными все ваши предположения по поводу моих знаний. А вы когда нибудь читали исходные коды VCL? Похоже что да. Это видно невооруженным взглядом. Так вот если бы вы их читали, господин jack128, то не утверждали бы, что разработчики IDE знают хоть что то об ООП. А по поводу моих знаний...я и не утверждаю что я большой профессионал, и даже не говорю что я много знаю. Я человек скромный.
jack128 (2005-07-19 18:32:00) [22]DiamondShark © (19.07.05 18:22) [40]
Наследование тут совершенно ни при чём.
DiamondShark © (19.07.05 17:51) [22]
При написании кода для компонента могут потребоваться описания из модуля наследника (я так понимаю тут описка, имелось в виду предка ?? Иначе бред получается - jack128), например, обработчик собития, доставшегося компоненту в наследство, с какими-то хитрыми параметрами.
???
Хотя если ты знаешь, как заставить IDE автоматом включать в uses не только модули предков компонентов, и какие нить другие, то я бы с удовольствием послушал, иногда нужно бывает..
Karluha (2005-07-19 18:29:00) [23]Такое мог только человек, не знающий что такое наследование, а отсюда и следует все те "ненужные" прописывания модулей в uses..
Что то я не очень понял кто не знает что такое наследование, но что то мне подсказывает что это я. Господин jack128, не нужно так...
jack128 (2005-07-19 18:26:00) [24]Karluha (19.07.05 18:22) [39]
Знаешь, для того чтобы понять, что если в проэкте используется класс TChild = class(TParent), то в проэкт гарантированновключен юнин, в котором описан TParent большого ума не надо. Для этого нужно лишь знать, что такое наследование. Разработчики IDE это знают, а ты нет, вот и вся разница..
DiamondShark (2005-07-19 18:22:00) [25]
> jack128 © (19.07.05 18:20) [38]
Наследование тут совершенно ни при чём.
Karluha (2005-07-19 18:22:00) [26]Это твои сугубо личные проблемы, ide - не телепат и не знает, когда ты передумаешь.. Удали их в ручную из Uses
Зато IDE телепат по поводу используемых модулей.
jack128 (2005-07-19 18:20:00) [27]Karluha (19.07.05 18:16) [36]
Согласен что тема наследования безгранична и интересна, но топик о другом...
Karluha (19.07.05 15:07) [2]
Тогда может кто нить объяснит почему она это делает? Никак не могу понять, что может заставить IDE включить модуль Buttons, если на форме нет ниодного компонента из этого юнита, но возможно есть его наследники.
Такое мог только человек, не знающий что такое наследование, а отсюда и следует все те "ненужные" прописывания модулей в uses..
jack128 (2005-07-19 18:16:00) [28]WondeRu © (19.07.05 18:14) [33]
потом резко передумал!!!
Это твои сугубо личные проблемы, ide - не телепат и не знает, когда ты передумаешь.. Удали их в ручную из Uses
Karluha (2005-07-19 18:16:00) [29]> jack128
Согласен что тема наследования безгранична и интересна, но топик о другом...
DiamondShark (2005-07-19 18:16:00) [30]
> WondeRu © (19.07.05 18:14) [33]
Это тебя уже не в ту степь понесло.
WondeRu (2005-07-19 18:14:00) [31]DiamondShark © (19.07.05 18:08) [31]
да не... вот я вздумал использовать СОМ-объекты... включил модули ActiveX, ComObj, ComServ... потом резко передумал!!! А объявления модулей остались... Код в их инициализации все-равно скомпилится и запустится!
Karluha (2005-07-19 18:14:00) [32]> jack128
Это каменть в мой огород?
jack128 (2005-07-19 18:11:00) [33]Karluha
Какие теории компиляции, какие особенности работы дельфи.. Тут бы с обычным наследованием разобраться...
DiamondShark (2005-07-19 18:08:00) [34]
> WondeRu © (19.07.05 17:59) [28]
А подумать?
Если ты используешь какой-то компонент, то у тебя уже включены (косвенно) все модули, содержащие всех его предков.
DiamondShark (2005-07-19 18:06:00) [35]
> Юрий Зотов © (19.07.05 17:53) [25]
Почему хуже? Единственное не может быть хуже или лучше.
Кроме Ваших, тут никаких фантазий больше нет.
Зависимости для включения модулей определяются только по published членам использованных компонентов. А code completion прекрасно работает для всех членов. Даже без включения модулей.
Для ускорения code completion используется не "парсение кучи юзесов", а кэшированная метаинформация, полученная при компиляции всехсвязанных модулей.
Karluha (2005-07-19 18:00:00) [36]> Юрий Зотов
Code Completion должен показать мне все, что есть в моих uses и ничего более. Прошу заметить, что если я добавлю к классу свойство с типом из модуля Dialogs, то этот самы модуль не добавляется к uses. Куда же смотрит Code Completion?
WondeRu (2005-07-19 17:59:00) [37]DiamondShark © (19.07.05 17:18) [14]
Не бойся. Лишнего кода они не создают.
Правда?
А всякие initialization-finalization? как я понимаю они все-равно в проект включатся, даже если не будешь пользовать функции из этих модулей!
Karluha (2005-07-19 17:58:00) [38]Согласен с DiamondShark. Это возможно сделано просто для удобства.
Ну я могу дать пример элементарного проекта с элементарными компонентами, из которых исключены, добавленные IDE модули из одной из форм, и все работает отлично. Можно узнать, каким образом Юрий Зотов неоднократно убеждался в том, что все модули необходимы?
Юрий Зотов (2005-07-19 17:55:00) [39]> Karluha (19.07.05 17:52) [24]
Каким Вы представляете себе механизм работы Code Completion?
Юрий Зотов (2005-07-19 17:53:00) [40]> DiamondShark © (19.07.05 17:51) [22]
Не вижу, чем мои фантазии хуже Ваших.