2016-11-08 2 views
1

Мне было предложено обновить наше приложение и добавить систему VCL ко всем компонентам.Обновление многих проектов для использования общего стиля VCL

Приложение составлено из множества различных программ (более 200), поэтому обновление вручную каждого из них будет долгой и утомительной задачей.

Так что я хотел бы знать, есть ли способ обновить ВСЕ эти проекты, чтобы каждый из них использовал один и тот же стиль VCL? Прямо сейчас, никакого стиля не применяется вообще.

+0

Определите, что нужно изменить в файле .dproj, который является только XML-файлом. Затем примените это изменение ко всем вашим .dproj-файлам. Лучшим способом было бы применить общие настройки с помощью набора опций, который вы могли бы ссылаться на каждый проект. Или, может быть, лучше применить изменения в коде, общий код будет включен во все ваши программы. Не следует предупреждать, что стили VCL ошибочны, и вам нужно будет тщательно протестировать все ваши программы. –

+0

Спасибо, Дэвид. Я надеялся, что есть инструмент для выполнения этого массового обновления без необходимости писать его самостоятельно. Может быть, вы могли бы поставить это в ответ. – Stephane

+0

Полезно писать такие инструменты. Изучите хороший язык сценариев, такой как Python, и вы можете написать такой инструмент за несколько минут. –

ответ

2

Если вы планируете добавить VCL Styles поддержка большого набора проектов, которые вы должны создать самостоятельно или скрипт, попробуйте эти параметры.

Вариант 1, внедряя VCL Style в качестве ресурса в ехе: Используя эту опцию, вам нужно изменить, по крайней мере 2 файлов в проект, файл .dpr который установил текущий VCL стиль и файл .dproj который нужна ссылка на файл стиля VCL для вставки стиля в качестве ресурса.

Вариант 2, используя стиль VCL из внешнего файла, используя этот параметр, вам необходимо изменить файл .dpr, который устанавливает текущий стиль VCL, добавляя необходимый код для загрузки стиля из внешнего файла.

Чтобы изменить файл .dproj, вы можете использовать инструмент автоматизации или язык сценариев, который поддерживает XML.

Для изменения файла .dpr вам нужно построить собственное приложение в идеале с помощью Delphi Parser как DelphiAST или Castalia-Delphi-Parser добавив необходимый код для установки текущего VCL Style.

+0

Существует вариант 3, так как я намекаю на комментарий в Q - аналогично варианту 2, но когда дело доходит до загрузки файла, есть специальный блок, предназначенный для загрузки и применения стиля. Просто добавьте этот блок в предложение uses в любом месте проекта (желательно в файл .dpr), и он позаботится об остальном. Тот же блок может также вставлять файл в качестве ресурса. Для этого потребуется использование раздела 'initialization'. –

+0

Конечно, есть много способов реализовать решение, но всегда будет включать в себя парсер для _inject_ нового кода. – RRUZ

+0

Действительно, но этот подход является гибким для будущих изменений. Предположим, через год OP хочет изменить его на другой стиль. Повторно вставить весь этот код, перезаписав предыдущий код? Или внести изменения в эту единицу и перекомпилировать? (Или замените файл стиля одним и тем же именем, но я бы не рекомендовал его.) –

Смежные вопросы