Интерфейс и логика приложения

  • Элементы управления составляют суть пользовательского интерфейса Windows. Всеми программами нужно управлять более или менее единообразно, поэтому в составе ОС имеется набор типовых кнопок, редактирующих элементов, списков выбора и т. п., которыми вы можете "украсить" свои разработки.

  • Что такое библиотека ComCtl32 Все элементы, проверенные и обкатанные в Windows, объединялись в библиотеке ComCtl32.dll, документировались и публиковались для использования разработчиками.
  • Палитре компонентов имеется два элемента управления, обеспечивающих создание многостраничных блокнотов. Это компоненты TTabControl и TPageControl
  • Компонент TToolBar который объединяет расположенные на нем кнопки и другие элементы управления и централизованно управляет ими.
  • С ростом возможностей пользовательского интерфейса Windows все больше и больше элементов управления стали оснащаться значками и картинками. И вот для централизованного управления этими картинками появился элемент управления TImageList .
  • Компоненты TTreeView и TListView Именно на их базе создано ядро пользовательского интерфейса — оболочка Explorer, да и большинство других утилит Windows
  • Календарь Выбор даты — одна из часто используемых операций при вводе данных. Для облегчения этого действия разработчики Borland создали два новых элемента управления.
  • Компонент TMonthCalendar Этот элемент управления представляет собой панель с календарем на один месяц. Он обладает богатыми возможностями по настройке.
  • Компонент TDateTimePicker совмещает календарь и однострочный текстовый редактор, причем календарь полностью совпадает с рассмотренным выше
  • Этот вид элементов управления применяется уже достаточно давно. Его роль заключается в отображении различного рода справочной информации. Панель состояния инкапсулирована в компоненте TStatusBar
  • Расширенный комбинированный список TComboBoxEx Что отличает этот "продвинутый" выпадающий список от обычного TCоmbоВох? С функциональной точки зрения основных отличий два: возможность добавлять картинки к элементам и выравнивать последние с разным отступом, имитируя иерархию.
  • С каждой версией Internet Explorer Microsoft поставляет новую библиотеку ComQ132 с новыми элементами управления. Программисты Borland пытаются поспеть за ними, но получается это не всегда.
  • Элементы управления — поистине неисчерпаемая тема. Надеемся, что читатель воспримет данную главу как руководство к последующему углубленному анализу того или иного элемента в свете стоящих перед ним задач.
  • В Delphi 7 впервые появилась возможность настраивать пользовательский интерфейс приложений для использования в Windows XP. Для этого в состав ресурсов приложения должен включаться манифест Windows XP. Это дополнение призвано обеспечить корректное взаимодействие элементов управления приложения с системной библиотекой ComCtl32.dll версии 6, используемой в Windows XP.

  • Элементы управления Windows XP
  • Пользовательский интерфейс Windows XP При первом знакомств с Windows XP сразу же обращаешь внимание на существенные изменения в оформлении пользовательскою интерфейса этой операционной системы.
  • Манифест Windows XP Он представляет собой документ в формате XML, содержащий всю информацию, необходимую для взаимодействия приложения и библиотеки ComCtl32.dll версии 6.
    • Компонент TXPManifest На странице Win32 Палитры компонентов Delphi 7 имеется компонент TXPManifest
    • Включение манифеста Windows XP в ресурсы приложения Так как использование стандартного компонента TXPManifest требует настройки исходного манифеста Delphi для каждого проекта, было бы неплохо изыскать более удобный способ.
  • Визуальные стили и темы оформления Теперь давайте более подробно разберемся с визуальными стилями и их влиянием на пользовательский интерфейс приложений.
    • Визуальные стили в Delphi Вы можете создать собственный стиль самостоятельно. Правда, это потребует очень много усилий — ведь на основе базовых классов элементов управления вам потребуется создать собственные классы с нужным вам поведением и внешним видом.
    • Theme API Помимо описанного способа создания и управления визуальными стилями разработчик может использовать функции Theme API, разработанные Microsoft для этих целей.
  • Компоненты настройки цветовой палитры Впервые в составе Палитры компонентов Delphi 7 появились специализированные компоненты, позволяющие настраивать цветовую палитру всех возможных деталей пользовательского интерфейса одновременно
  • В оформлении пользовательского интерфейса операционной системы Windows ХР появилось новшество — визуальные стили, которые позволяют настраивать не только внешний вид элементов управления, но и их поведение, и даже управлять отрисовкой отдельных частей элементов управления.
Практически любое приложение должно уметь выполнять ряд стандартных операций по обработке каких-либо данных. К ним относятся загрузка данных при открытии приложения, представление данных в удобном виде для использования внутри приложения, сохранение данных при завершении работы. Перечисленные действия необходимы и приложениям баз данных, и играм, и научным программам.
  • Списки и коллекции
  • Список строк Строковый тип данных широко используется программистами. Во-первых, многие данные действительно необходимо представлять при помощи этого типа.
    • Класс TStrings является базовым классом, который обеспечивает потомков основными свойствами и методами, позволяющими создавать работоспособные списки строк.
    • Класс TStringList обеспечивает реальное использование списков строк в приложении. По существу, класс представляет собой оболочку вокруг динамического массива значений списка, представленного свойством strings.
  • Список указателей Для хранения списка указателей на размещенные в адресном пространстве структуры (объекты, динамические массивы, переменные) предназначен класс TList
    • Пример использования списка указателейРассмотрим использование списков указателей на примере приложения DemoList . При щелчке мышью на форме приложения отображается точка, которой присваивается порядковый номер.
  • Коллекция представляет собой разновидность списка указателей, оптимизированную для работы с объектами определенного вида. Сама коллекция инкапсулирована в классе Tсоllection.
    • Класс TCollection является оболочкой коллекции, обеспечивая разработчика набором свойств и методов для управления ею
    • Класс TCollectionItem инкапсулирует основные свойства и методы элемента коллекции. Свойства класса обеспечивают хранение информации о расположении элемента в коллекции.
  • Списки, объединяющие элементы различных типов, играют важную роль при создании программной логики приложения . В Delphi используются три основных вида списков.
С давних пор повелось, что стандарты на пользовательский интерфейс Windows-приложений Microsoft задает "явочным порядком". Первая громкая история на эту тему связана с появлением в 1994 г. Excel 2.0 for Windows, когда разработчики из Редмонда впервые применили интерфейс со многими документами (впоследствии широко известный как MDI) и даже не подумали задокументировать и опубликовать его.
  • Действия (Actions) и связанные с ними компоненты
  • Действия. Компонент TActionList Пользовательский интерфейс современных приложений весьма многообразен, и зачастую один и тот же результат можно получить разными способами — щелчком на кнопке на панели инструментов, выбором пункта меню, нажатием комбинации клавиш и т. п.
    • События, связанные с действиями Компонент TAction реагирует на три события: OnExecute, OnUpdate И OnHint.
    • Свойства, распространяемые на клиентов действия Если у нескольких кнопок или пунктов меню общий обработчик, разумно потребовать, чтобы у них были и другие общие свойства.
  • Стандартные действия Те, кто собирается пропустить этот раздел, считая, что в нем описаны очевидные вещи, сильно ошибаются. Как раз в применении стандартных действий разработчики Borland продвинулись очень сильно.
    • Категория Edit В эту категорию входят компоненты, которые работают с редактируемыми элементами — потомками TCustomEdit.
    • Категория Search Действия поиска и замены тоже производятся только над потомками TCustomEdit. И это не прихоть разработчиков Borland: это сделано для вашего же удобства.
    • Категория Help С помощью этих действий вы можете вызвать справочную систему вашего приложения.
    • Категория File Эти действия скорее всего будут наиболее востребованы разработчиками. И они же являются довольно простыми в использовании.
    • Категория Dialog
    • Категория Window Эти действия стоит включать в интерфейс, только если вы используете многодокументный интерфейс (MDI).
    • Категория Tab Здесь всего два компонента — TNextTab и TPreviousTab.
    • Категория List В этой категории выделяются две группы действий. Первые пять из них автоматизируют работу с выделенными элементами списков.
    • Категория Internet Здесь всего три — типовых для пользователя Сети — действия.
    • Категория Format Действия этой категории представляют собой расширенные операции редактирования для "продвинутого" редактора TRichEdit.
    • Категория Dataset Эти действия можно увидеть, например, в качестве кнопок на любом компоненте TDBNavigator: TDataSetFirst, TDataSetPrior, TDataSetNext, TDataSetLast, TDataSetDelete, TDataSetlnsert, TDataSetEdit, TDataSetPost, TDataSetCancel, TDataSetRef resh.
    • Категория Tools Здесь содержится один-единственный член: TCustomizeActionBars
  • Компонент TActionManager Если вы не думаете о переносе своего приложения в среду Linux, то имеются все основания воспользоваться потомком TActionList — компонентом TActionManager (далее — менеджер действий)
    • Изменение и настройка внешнего вида панелей Мы подошли к совсем новому свойству панелей — TActionMainMenuBar. Теперь — как в Microsoft Office — возможно прятать редко используемые пункты меню.
    • Ручное редактирование коллекций панелей и действий Перетаскивание имеет много достоинств, однако оно не всегда удобно. Поэтому было бы странно, если бы не было предусмотрено другого способа. Хоть он напрямую и не рекомендован в документации, но в ряде случаев более эффективен.
  • Хорошо знакомые со времен Delphi 1 составляющие интерфейса — меню (TMainMenu, TPopupMenu), кнопки (TButton, TSpeedButton), панели TPanel —постепенно уходят, уступая место компонентам с расширенной функциональностью. Центральным местом , где обрабатывается весь ввод пользователя, становится хранилище действий — TActionList или TActionManager.