2010-11-28 7 views
3

Я только что получил некоторые изображения, сделанные художником, моего приложения Delphi Pro 6, которое я буду использовать для улучшения внешнего вида. Проблема, конечно, в том, что мое приложение, как и любое другое приложение Delphi, использует пользовательскую библиотеку управления VCL, и эти элементы управления рисуют сами и так часто не способствуют изменению их внешнего вида. Я также активно использую библиотеку JEDI JVCL с открытым исходным кодом.Как переустановить приложение Delphi 6?

Если у кого-нибудь есть несколько советов, статей, веб-страниц или что-либо, что говорит о работе с изображением, чтобы переделать или переделать приложение Delphi 6, я был бы признателен, если бы знал об этом. Это большое приложение с множеством сложных потомков TFrame и интенсивным использованием контроля страницы JEDI VCL, поэтому переход на новую библиотеку компонентов нецелесообразен.

Одна идея, которую я еще не пробовал, - это взять каждую форму верхнего уровня и уложить ее в другой TForm, изменив свойство родителя текущей формы на новый TForm и установив свойство AlphaBlend текущей формы, чтобы он прозрачен. Затем я установил новую оболочку или основной фон TForm на изображение, содержащее новый внешний вид и ощущение, чтобы оно проглотило прозрачную форму. Этот подход кажется вроде kludgy, и я беспокоюсь о проблемах с изменением размера, но это тот метод, который мне интересно, можно ли использовать.

+0

Не будет работать, `WS_EX_LAYERED` может использоваться только для окон верхнего уровня. Поэтому альфа-смесь для дочерних окон (это то, что вы получите, если родительская форма с другим). – 2010-11-28 15:57:21

ответ

3

Используйте скиннинг-библиотеку, такую ​​как VCLSkin или DevExpress Skins.

3

Практически все двигатели кожи имеют свои собственные редакторы кожи. Так что вам просто нужно заглянуть один (Крис Торнтон не упомянул AlphaControls и DynamicSkinForm). Затем вам нужно дать своему художнику этот скин-редактор и попросить его перерисовать его кожу с помощью этого инструмента.

0

Похоже, что ваш пользовательский интерфейс и бизнес-логика тесно связаны. Его довольно распространенный среди проектов развития стиля RAD. Вы бы преуспели, чтобы разбить эту связь. Это поможет один из многих UI architectural patterns. Я предпочитаю MVP Passive View, когда это возможно, поскольку он перемещает всю логику из пользовательского интерфейса в классы, которые можно тестировать изолированно. Один из других шаблонов может быть более уместным в зависимости от архитектуры вашего приложения.

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