Лекция 7.1. Справочная система приложения. Всплывающая подсказка, строка состояния
При разработке любых приложений необходимо ориентироваться на среднего пользователя и принимать все необходимые меры для облегчения его работы:
· приложение должно иметь простой и понятный интерфейс соответствующий сложившимся на данный момент времени стандартам;
· приложение должно иметь справочную систему
В наиболее завершенном виде справочная система приложения должна включать в себя следующие элементы:
· файл справки, содержащий подробную информацию о работе с приложением ориентированный на среднего пользователя;
· контекстную справку, вызываемую нажатием клавиши F1.
Как правило, для этого используют основной файла справки;· систему всплывающих подсказок с краткой информацией об интерфейсных элементах;
· строку состояния, для отображения текущего состояния приложения.
Реализация первых двух элементов справочной системы осуществляется средствами специальных программ, предназначенных для разработки и просмотра файла справки. Delphi имеет средства для подключения готовых справочных файлов к приложению.
Последние два элемента справочной системы создаются средствами Delphi.
Создание всплывающих подсказок
В наиболее простом виде всплывающие подсказки реализуются средствами класса предка TControl и наследуются всеми его потомками, т.е. визуальными компонентами. Вот эти свойства:
· Hint: String – текст всплывающей подсказки;
· ShowHint: Boolean – управляет отображением подсказки если значение true, то подсказка отображается;
· ParentShowHint: Boolean – определяет наследовать или нет значение свойства ShowHint контейнера.
Текст подсказки, задаваемый в свойстве Hint, может состоять из двух частей разделенных между собой символом «|», например:
Печать | Печать текущего документа
Первая часть может использоваться для отображения в окне всплывающей подсказки, а вторая расширенная может выводиться в строку состояния.
Чтобы получить доступ к каждой части подсказки используются две стандартные функции Delphi:· function GetShortHint (const Hint: String): String – возвращает левую часть подсказки;
· function GetLongHint (const Hint: String): String – возвращает правую часть подсказки, если она есть. В противном случае возвращается значение Hint.
Обработка всех всплывающих подсказок приложения реализуется главным объектом приложения Application. Эта особенность позволяет настраивать поведение всех всплывающих подсказок, отлавливать их и обрабатывать перед отображением на экране.
Для управления всплывающими подсказками главный объект приложения Application имеет несколько свойств:
· ShowHint: Boolean – определяет, будет ли отображаться всплывающие подсказки всего приложения;
· HintColor: TColor – определяет цвет фона всплывающей подсказки;
· HintHidePause: Integer – интервал времени (в миллисекундах), в течение которого всплывающая подсказка будет отображаться на экране;
· HintPause: Integer – задержка (в миллисекундах) до появления всплывающей подсказки на экране.
Перед отображением подсказки главный объект приложения Application генерирует событие OnShowHint, в котором разработчик может иметь возможность управления всеми всплывающими подсказками. Заголовок процедуры-обработчика этого события имеет следующий вид:
procedure (var HintStr: String; var CanShow: Boolean; var HintInfo: THintInfo);
Параметры этой процедуры имеют следующий смысл:
· HintStr – текст подсказки, который будет отображаться на экране и который можно изменить в теле процедуры-обработчика данного события;
· CanShow – параметр управляющий возможностью отображения подсказки;
· HintInfo – запись, определяющая параметры отображения текущей подсказки на экране.
Создание строки состояния приложения
Строка состояния приложения предназначена для того, чтобы информировать пользователя о текущем состоянии БД, о процессе выполнения различных операций, а также для вывода различного рода подсказок.
Строка состояния в Delphi реализуется средствами компонента класса TStatusBar расположенного на странице Win32 палитры компонентов.Компонент TStatusBar, в зависимости от значения свойства SimplePanel, может состоять из одной (SimplePanel = true) или нескольких панелей (SimplePanel = false), на которые выводится какая-либо информация. В том случае, когда значение свойства SimplePanel равно true, текст в строку состояния можно выводить через свойство SimpleText, например:
StatusBarl.SimpleText:= 'Выбрано' + IntToStr(Queryl.RecordCount) + ' записей';
При создании более сложных строк состояния можно использовать несколько панелей компонента TStatusBar. Для создания панелей строки состояния во время разработки приложения используется редактор панелей (рисунок 1).
Рисунок 7.1.1 - Окно редактора панелей компонента TStatusBar
Для его открытия можно воспользоваться одним из следующих способов:
· выполнить двойной щелчок на компоненте TStatusBar, размещенном на форме;
· выбрать пункт Panels Editor контекстного меню данного компонента;
· щелкнуть на кнопке с многоточием в поле ввода свойства Panels компонента TStatusBar в инспекторе объектов.
Для добавления, удаления и изменения местоположения панелей используются либо кнопки панели инструментов редактора панелей, либо команды контекстного меню, которые не требуют пояснений.
Каждая панель представляет собой экземпляр класса TStatusPanel и имеет следующие свойства:
· Bevel: TStatusPanelBevel = (pbLowered, pbRaised, pbNone) - определяет внешний вид панели;
· Text: String – текстовая строка, отображаемая на панели;
· Width: Integer – ширина панели в пикселях;
ü Style: TStatusPanelStyle = (psText, psOwnerDraw) – способ прорисовки панели:
ü psText – вывод текста;
ü psOwnerDraw – «ручная» прорисовка.
При использовании стиля панели psOwnerDraw разработчик программы должен сам позаботиться о прорисовке прямоугольной области, занимаемой панелью строки состояния.
Для этого следует использовать событие OnDrawPanel компонента TStatusBar. В этом случае на панель можно выводить не только текст, но и любые изображения.Приведем пример разделения всплывающей подсказки на части. Левая часть будет отображаться в виде всплывающей подсказки, а правая строке состояния:
1. Создайте приложение.
2. Поместите на форму строку состояния (класс TStatusBar).
3. В разделе private модуля формы создайте описание процедуры-обработчика события OnShowHint главного объекта приложения Application под именем MyShowHint:
procedure MyShowHint(var HintStr: String; var CanShow: Boolean; var HintInfo: THintInfo);
4. Нажмите Ctrl+Shift+C и впишите следующий код реализации процедуры-обработчика:
StatusBarl.SimpleText:= GetLongHint(Application.Hint);
5. Присвойте событию OnShowHint объекта Application ваш обработчик MyShowHint. Это действие можно выполнить при создании формы через событие OnCreate. Впишите в процедуру-обработчик следующий код:
Application.OnShowHint:= MyShowHint;
6. Присвойте свойству ShowHint формы значение true, которое автоматически будет наследоваться всеми размещенными на ней компонентами.
7. Разместите на форме несколько визуальных компонентов и определите их свойства Hint по принципу «Краткая подсказка | Расширенная подсказка», например, как это показано на рисунке 7.1.2.
8. Выполните компиляцию и тестирование приложения.
Рисунок 7.1.2 - Использование всплывающих подсказок и строки состояния
Задания для самостоятельной работы
1. Дополните вашу программу «Блокнот» добавив в него всплывающие подсказки и строку состояния.
2. Добавьте в строку состояния отслеживание позиции курсора.
Вопросы для самоконтроля
1. В чем назначение справочной системы?
2. Назовите основные части справочной системы приложения и определите их назначение?
3. Какими средствами создается справочная система?
4. Какими средствами реализуются всплывающие подсказки?
5. Как можно управлять отображением всплывающих подсказок?
6. Какими средствами создается строка состояния?
7. Назовите основные свойства строки состояния и панелей?
Еще по теме Лекция 7.1. Справочная система приложения. Всплывающая подсказка, строка состояния:
- 71. Суть обов'язку адвоката "використовувати всі передбачені законом засоби захисту прав і законних інтересів громадян і юридичних осіб"
- 14.2 Анализ профессиограммы работника юридического труда следует начать с профессии следователя
- 14.4 Деятельность работников прокуратуры многогранна и ответственна
- ВЫВОДЫ ПО ГЛАВЕ 4
- Мотивы воспоминания и ностальгии
- Язык и история. Ломоносов и Карамзин в публицистике славянофилов
- Лекция 5.8 Особенности реляционного доступа к данным