![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Очистка USES [D7, WinXP]
Stanislav © (2006-07-27 11:08:00)Можно ли каким-то образом автоматически из всех модулей проекта вычистить блок USES, т.е. убрать из него те модули которые нигде не используются
Плохиш (2006-08-10 11:40:00) [1]
> GrayFace © (10.08.06 10:21) [99]
Откройте пост 97, заклейте слово "скулите" и почитайте ещё несколько раз.
GrayFace (2006-08-10 10:23:00) [2]GrayFace © (10.08.06 10:21) [99]
Если ты
Поправка: Вы.
GrayFace (2006-08-10 10:21:00) [3]Плохиш © (08.08.06 11:59) [97]
Я доказываю Игорю, что из-за не очень хорошо спроектированных модулей в программу пихается лишний код. Если ты суть дискуссии не понимаешь, то влезасть с глупостями типа "скулишь" не стоит.
Игорь Шевченко © (08.08.06 13:25) [98]
Да, неудачный пример. Вот: TMonitor - зачем ему то, что я перечислял?; функции из SysUtils - многим не нужна инициализация, которая присутствует в модуле и утяжеляет exe на пару десятков кило; битмепки из Buttons.res вообще нужны только TBitBtn, поэтому вместе с ним должны были быть выделены в отдельный модуль.
Игорь Шевченко (2006-08-08 13:25:00) [4]GrayFace © (08.08.06 11:32) [96]
> Если я захочу использовать в своей консольной программе
> модуль Dialogs, то это не означает, что должен быть проинициализирован
> Application, подключен код TCustomForm и всех его родителей
> и добавлены иконки и курсоры в ресурсы.
Означает. Так как в этом модуле Forms активно используется. Почитай исходник.
Плохиш (2006-08-08 11:59:00) [5]
> GrayFace © (08.08.06 11:32) [96]
> Если я захочу использовать в своей консольной программе
> модуль Dialogs, то это не означает, что должен быть проинициализирован
> Application, подключен код TCustomForm и всех его родителей
> и добавлены иконки и курсоры в ресурсы.
Я не понимаю, проблема написать свой компилятор с библиотекой? Вон KOL сделали. А Вы, извините, только скулите, что Вам чё-то не нравиться и все должны броситься всё подстраивать под Ваши требования. Вы, эта, хотя бы приняли участие в финансировании проекта Делфи? Например, купив лицензию или всё ворованой версией пользуетесь?
GrayFace (2006-08-08 11:32:00) [6]Игорь Шевченко © (02.08.06 11:20) [95]
Еще раз - если ты включаешь в uses модуль Controls, значит тебе требуется что-то из него. Это "что-то" должно быть проинициализировано.
Если я захочу использовать в своей консольной программе модуль Dialogs, то это не означает, что должен быть проинициализирован Application, подключен код TCustomForm и всех его родителей и добавлены иконки и курсоры в ресурсы.
Игорь Шевченко (2006-08-02 11:20:00) [7]GrayFace © (02.08.06 03:33) [92]
> Чем именно - например тем, что чайники, коих в Борланде
> есть, могли бы в initialization модуля Classes вызвать что-
> то из Forms, требущее инициализации. Впрочем, ничего военного
> на ум не приходит, просто не принято.
Так раз на ум не приходит, то и наговаривать на Borland не стоит, не так ли ?
А то моська на слона тоже лаяла...
> это, конечно, хорошо, но кто мешает гарантированно инициализировать
> по требованию? При граматнам :) подходе при включении в
> uses модуля Controls к размеру программы не добавлялось
> бы 300kb.
Еще раз - если ты включаешь в uses модуль Controls, значит тебе требуется что-то из него. Это "что-то" должно быть проинициализировано.
jack128 (2006-08-02 08:22:00) [8]С одной стороны в Борладе чайники
GrayFace © (02.08.06 3:33) [92]
Чем именно - например тем, что чайники, коих в Борланде есть, могли бы в initialization модуля Classes вызвать что-то из Forms, требущее инициализации.
С другой -
GrayFace © (02.08.06 3:33) [92]
но кто мешает гарантированно инициализировать по требованию? При граматнам :) подходе при включении в uses модуля Controls к размеру программы не добавлялось бы 300kb
ты уж определись ;-)
GrayFace (2006-08-02 03:39:00) [9]Хм, "И?" надо было убрать - несколько грубовато получилось.
GrayFace (2006-08-02 03:33:00) [10]Игорь Шевченко © (31.07.06 15:41) [80]
> Разбиение на модули действительно ламерское. Например, в
> Forms присутствует uses Controls, а в Controls в implementation
> uses Forms.
Это плохо по твоему мнению ? Чем именно ?
Это плохой стиль. Чем именно - например тем, что чайники, коих в Борланде есть, могли бы в initialization модуля Classes вызвать что-то из Forms, требущее инициализации. Впрочем, ничего военного на ум не приходит, просто не принято.
Игорь Шевченко © (31.07.06 15:41) [80]
> И вместо initialization надо было инициализировать по требованию
> в большинстве случаев.
Видишь ли, дорогой друг, тот, кто использует в uses эти юниты, обычно гарантировано требует их функциональности, обеспечиваемой секцией initialization в том числе. Не используй - и будет тебе счастье. Даром. И никто не уйдет обиженный.
И? Гарантированное выполнение implementation - это, конечно, хорошо, но кто мешает гарантированно инициализировать по требованию? При граматнам :) подходе при включении в uses модуля Controls к размеру программы не добавлялось бы 300kb.
Плохиш © (31.07.06 16:44) [89]
Я ещё больше скажу, моя версия делфи даже неиспользуемые методы выкидывает, во как :-)
Неиспользованные глобальные переменные тоже выкидывает. Но не все неипользованные методы можно выкинуть.
Плохиш © (31.07.06 16:44) [89]
Правда она лицензионная, это фича наверное лицензии.
Шутить изволите?
Игорь Шевченко (2006-08-01 13:53:00) [11]
> Отсюда следует что если модуль с 10 классами вкючен в uses,
> но ниодин класс не используется, то содержимое модуля в
> exe не попадет?
> А если попадает, то где-то происходит вызов одного из методов
> класса?
Именно так.
Stanislav (2006-08-01 13:51:00) [12]Действительно не подтягивается! :-)
Отсюда следует что если модуль с 10 классами вкючен в uses, но ниодин класс не используется, то содержимое модуля в exe не попадет?
А если попадает, то где-то происходит вызов одного из методов класса?
Тогда приношу свои извинения!
Плохиш (2006-07-31 16:44:00) [13]
> Stanislav © (31.07.06 16:33) [87]
> Плохиш © (31.07.06 16:25) [86]
> Игорь Шевченко © (31.07.06 16:25) [85]
>
> СМ. 7
На чушь написаную в [7] вроде ответы были даны?
Я ещё больше скажу, моя версия делфи даже неиспользуемые методы выкидывает, во как :-) Правда она лицензионная, это фича наверное лицензии.
Игорь Шевченко (2006-07-31 16:37:00) [14]Stanislav © (31.07.06 16:33) [87]
Ты же называешь конкретные классы в [84]. У меня вопрос - чем ты определяешь, что при использовании класса ADOCommand, подтягивается класс TADODataSet, TADOQuery, TADOTable
?
Способ из [7] не дает конкретных имен, не так ли ?
Stanislav (2006-07-31 16:33:00) [15]Плохиш © (31.07.06 16:25) [86]
Игорь Шевченко © (31.07.06 16:25) [85]
СМ. 7
Плохиш (2006-07-31 16:25:00) [16]
> Stanislav © (31.07.06 16:19) [84]
Германн уже про голословное утверждение сказал.
Игорь Шевченко (2006-07-31 16:25:00) [17]
> стандартный модуль ADODB, мне нужен ADOCommand, а подтягивается
> класс TADODataSet, TADOQuery, TADOTable
Чем определяешь, что подтягивается ?
Stanislav (2006-07-31 16:19:00) [18]Игорь Шевченко © (31.07.06 15:58) [83]
Чтобы далеко не ходить, стандартный модуль ADODB, мне нужен ADOCommand, а подтягивается класс TADODataSet, TADOQuery, TADOTable, понятно что это не более 50%, но в проект включается не только этот модуль.
Игорь Шевченко (2006-07-31 15:58:00) [19]
> Существует модуль, в котором 10 классов, а мне нужен 1,
> но в exe пойдут все 10 классов из них 9 не нужных.
пример в студию
Stanislav (2006-07-31 15:55:00) [20]Ну, если бы вы внимательно прочитали ветку, то вы бы нашли ответы на свой вопрос.
Элементарно. Существует модуль, в котором 10 классов, а мне нужен 1, но в exe пойдут все 10 классов из них 9 не нужных.