Как уменьшить использование шаблонов для новых форм?

Каждый раз, когда я добавляю новую форму в свой проект, она отбрасывает большую часть шаблона в разделе uses.

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs;

Серьезно, кто использует модуль Variants на чем-то похожем на регулярной основе? Обычно я удаляю Windows, сообщения, варианты, графику и диалоги и никогда не пропускаю их.

Это должно быть откуда-то из файла шаблона, но я не могу его найти. Кто-нибудь знает, где я могу найти шаблон и отредактировать его? Я использую D2009, если он недавно изменился.


person Mason Wheeler    schedule 18.05.2009    source источник


Ответы (4)


Соответствующий ресурс находится в $ (BDS) \ bin \ delphivclide * .bpl и называется "VCLIDECMD"; вы можете извлекать, редактировать и обновлять его с помощью редактора ресурсов по вашему выбору (я рекомендую тот, который включен в Pelles C ).

Для пользователей C ++ Builder файл шаблона - «CPPVCLIDECMD» в bcbvclide * .bpl.

Если вы используете локализованную версию RAD Studio, посмотрите файлы ресурсов соответствующего языка (* .DE, * .FR или * .JA).

person Moritz Beutel    schedule 18.05.2009

Вы ничего не сохраняете, удаляя Windows и Сообщения. Графика и Диалоги могут быть добавлены обратно в зависимости от того, какие компоненты вы добавляете в форму, и на них в любом случае довольно полезно ссылаться. Сомневаюсь, что удаляя их, вы много экономите. Не стесняйтесь удалять варианты, если вы их не используете (что, я согласен, довольно распространено, если не разрабатываете COM или DB).

Я предполагаю, что все зависит от вашей цели в очистке пункта использования. Варианты - действительно единственный вариант, который может повлиять на ваше приложение.

Что касается изменения шаблона по умолчанию, я считаю, что он находится в пакете, который говорит, что если вы спускаетесь с TForm, вы их получаете. Скорее всего, вам потребуется изменить файл .PAS и пересобрать пакеты VCL. Много работы с очень небольшой прибылью.

person Jim McKeeth    schedule 19.05.2009
comment
Я не думаю, что Мейсон Уиллер хочет уменьшить размер исполняемого файла, ему просто нужен более чистый автогенерируемый код. - person The_Fox; 19.05.2009
comment
Фокс: Да, именно так. Джим: Если метод Морица сработает, на самом деле это не так уж и много работы, и ее нужно будет проделать только один раз. - person Mason Wheeler; 19.05.2009

Обычно я использую «Очиститель использования», который поставляется с cnPack после завершения проекта, он предоставит вам список для всех неиспользуемые единицы в вашем проекте, потому что обычно при завершении проекта у вас могут быть неиспользуемые единицы большего размера, чем вы упомянули.

person Mohammed Nasman    schedule 19.05.2009
comment
Это риск с этим методом. Такой инструмент никогда не сможет проанализировать, нужно ли выполнять разделы инициализации или завершения используемого модуля. Удаление модулей из использования может привести к тому, что разделы инициализации и финализации не будут выполняться, что приведет к ошибкам. - person Lars Truijens; 19.05.2009
comment
Интересный момент, но ИМО, если вы полагаетесь на инициализацию модуля, который на самом деле никогда нигде не использовался, ваш код нуждается в рефакторинге. - person Mason Wheeler; 19.05.2009
comment
@Mason: Не обязательно, если это модуль, используемый для автоматической установки какой-либо утилиты, такой как FastMM4, или патча, такого как модуль VclFixPack Андреаса. Мы использовали этот прием для динамической замены вызовов InitializeCriticalSection на InitializeCriticalSectionEx при работе в Vista / Windows2008. Конечно, это скорее произойдет в dpr, чем в модуле Form. - person Francesca; 21.05.2009

Собственно, меня это тоже беспокоило.

Но затем я проверил размер исполняемого файла, скомпилированного с модулями по умолчанию, а затем проверил его без них (сообщения, варианты, графические изображения), и размер был ненамного меньше.

Dialogs.pas добавляет несколько килобайт, но я часто использую диалоги delphi VCL вместо диалогов Win API.

Так что, я бы сказал, не особо с ними заморачиваться.

person zz1433    schedule 19.05.2009