Блог Александра Божко
Архивы
Рубрики
Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

В отличие от приложений, которые разрабатываются для индивидуального заказчика, программы, написанные для массовой продажи, требуют к себе внимания со стороны разработчика на протяжении всего жизненного цикла. По крайней мере, до тех пор, пока ведется их активная продажа. И речь идет не только об устранении каких-либо багов  и добавлении дополнительного функционала. Программа, кроме всего прочего, должна быть “модной и красивой”. Именно это является одним из главных условий успешного ее распространения.В связи с этим, для многих разработчиков выход очередной версии MS Windows вызывает некоторые опасения. Мало того, что проблемы на ровном месте возникают из-за всяких UAC и изменений системных переменных, так еще и появляются различные “интерфейсные навороты” к которым программа должна приноравливаться. С другой стороны, новая ОС это и возможность освежить приложение, придав ему новый внешний вид, и тем самым, стимулировать интерес пользователя.
Собственно, с такой задачей мне и пришлось столкнуться в начале прошлого года. Учитывая то, что подобная задача довольно актуальна для многих Delphi программистов, и то, что она довольно не проста, я решил поделиться своим опытом.
Очевидно, данный материал я разобью на несколько частей. Скорее всего, здесь не будет конкретных универсальных приемов, но наиболее  типичные проблемы и пути их решения я постараюсь изложить.

Вводные.

Прежде всего, скажу, что в проекте, о котором идет речь, я участвую далеко не с самого начала. Более того, до меня его развивали несколько человек. По сути, изначально некоторые фрагменты кода представляли для меня «черный ящик». Первая версия приложения, судя по коду, была написана еще на Delphi 5. По крайней мере, функции из модулей DateUtils и StrUtils, появившиеся Delphi 6 и Delphi 7, были написаны вручную.
Я получил для работы версию, адаптированную для Delphi 7. В качестве локальной СУБД использовался MS Access. Редактор отчетов – Rave Report.
Использовались так же наборы сторонних компонентов:
LibEh, TNT и малоизвестный набор для экспорта данных в MS Excel.
В качестве протектора использовался ASProtect.
Задачу вкратце можно описать следующим образом: сделать интерфейс программы подобным MS Outlook 2007 и обеспечить корректную работу под Windows Vista, а впоследствии и под Windows 7. По сути, требовалось следующее:
1.    Подключить Ribbon Bar;
2.    Подключить боковые панели;
3.    Настроить цветовую схему всех контролов (включая гриды);
4.    Обеспечить корректную работу с UAC Vista и Windows 7;

Выбор средств реализации.

Естественно, что старыми средствами, использованными в проекте реализовать описанную выше задачу практически невозможно. Таким образом, нам пришлось выбирать новый инструментарий, для преобразования проекта.
Вариантов было несколько. Одним из ключевых факторов являлась «цена вопроса».
Во-первых, можно было сразу обновиться до Delphi 2009 (последней, актуальной на тот момент версии), отказаться от использования TNT-компонентов и решить проблему с Ribbon-интерфейсом.
Однако следует признать, что переход на 2009-ю версию Delphi, действительно, сопряжен с рядом проблем. И это, прежде всего, не полная ревизия и адаптация кода. Основная проблема заключалась в том, что портация сторонних компонентов, в частности LibEh длилась дольше обычного. И на момент принятия решения Delphi2009-совместимая версия не была готова.
Кроме того, по сравнению с теми же визуальными компонентами из наборов DevExpress или TMS родные Delphi2009 компоненты накладывали некоторые ограничения, прежде всего, связанные с т.н. «скинованием» контролов. Да и после некоторых экспериментов стало понятно, что гриды тоже необходимо скиновать. В итоге было принято решение портировать проект на Delphi 2007 и купить DevExpress компоненты. При этом мы сознательно пожертвовали китайским и ивритом и избавились от TNT. После выпуска первой стабильной версии обновленной программы можно будет рассматривать перспективу перехода на Delphi с поддержкой юникод.
Забегая вперед, скажу, что универсальных рецептов по замене одного набора компонентов на другой в приложении не существует. В последующих постах я поэтапно расскажу о «прикручивании» Ribbon интерфейса, замене гридов, скиновании проекта.  Отдельный и очень интересный, как по мне, вопрос – локализация проекта. Его я так же планирую затронуть. Помимо этого, я планирую создать в блоге новую рубрику, посвященную нюансам работы с DevExpress.

Другие статьи серии:

Редизайн интерфейса приложения. #1
Редизайн интерфейса приложения. #2
Редизайн интерфейса приложения. #3
Редизайн интерфейса приложения. #4
Редизайн интерфейса приложения. #5
Редизайн интерфейса приложения. #6
Редизайн интерфейса приложения. #7
Редизайн интерфейса приложения. #8


Поделись с другими!
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

3 комментария: Редизайн интерфейса приложения. #0

  • >>планирую создать в блоге новую рубрику, посвященную нюансам работы с DevExpress.

    С этого места по-подробнее, пожалуйста :) Т.к. я вольнонаемный работник в сфере программирования, то DevExpress мне, видимо, не видать как собственных ушей. А посмотреть, что это за компоненты уж очень хочется. Многие склоняются к тому, что компоненты хорошие…

  • Компоненты – хорошие. На мой взгляд, один из лучших, если не лучший набор.
    Но требуют детального изучения. Многие вещи с наскока и не сделаешь. Сильно отличается структура классов от VCL аналогов.

    По поводу стоимости продуктов и возможности их приобретения тоже есть мысли. Наверняка как-нибудь поделюсь.

  • >>Отдельный и очень интересный, как по мне, вопрос – локализация проекта.

    этот вопрос тоже очень интересует, поведайте нам о нем побыстрее..

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Продукты DevArt
Купить онлайн:



Читай русскоязычные Delphi блоги
Каталог блогов Blogdir.ru
Яндекс.Метрика