Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка_ОАиПрг_2курс_лекции.doc
Скачиваний:
0
Добавлен:
28.12.2019
Размер:
4.02 Mб
Скачать
  1. Строка состояния

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

Компонент StatusBar может быть использован в 2 основных режимах - в простом, когда вся его поверхность используется для вывода одного сообщения, и в многопанельном, когда он разделяется на отдельные области, предназначенные для вывода различной информации - панели. За режим работы отвечает свойство SimplePanel, установив которое в значение истины, мы получим простой режим. При этом текст надписи, выводимой в строку состояния, определяется свойством SimpleText.

В случае, когда необходимо вывести несколько индикаторов, для деления строки состояния на отдельные панели следует использовать свойство Panels. Основными свойствами такой панельки являются Width и Text. Первое задает ее ширину, а второе - содержимое надписи. Так же могут пригодиться свойства Alignment и Bevel. Свойство Alignment определяет выравнивание текста в панельке, а свойство Bevel задает вид рамки. Свойство Bevel может принимать значения pbLowered, pbRaised и pbNone, задавая вогнутую, выпуклую или вообще отсутствующую рамку, соответственно.

Для создания новых панелек можно использовать инспектор объекта. Для этого достаточно щелкнуть по кнопке в строке со свойством Panels и в открывшемся окне редактирования панелек нажать кнопку Add New. При этом в списке редактирования появится новый элемент, щелкнув по которому, вы получите доступ ко всем его свойствам в инспекторе объекта. В процессе выполнения программы придется обращаться к отдельным ее элементам программно. Делается это через массив Panels, каждый элемент которого, как мы уже знаем, является объектом типа TStatusPanel:

StatusBar1.Panels[0].Text:='Программа загружена!'; //текст на 1-ой панельке

StatusBar1.Panels[0].Width:=150; // изменяем ширину

StatusBar1.Panels[0].Alignment:=taCenter; // выравниваем текст по центру

StatusBar1.Panels[1].Text:=''; // удаляем текст 2-й панельки

Как и у других оконных элементов, оформление шрифта для строки состояния определяется при помощи свойства Font. Однако его изменения не будут иметь силы до тех пор, пока свойство UseSystemFont имеет значение истины.

Строка состояния обладает свойством AutoHint. Если установить его значение в истину, то в качестве текста строки состояния (или текста ее первой панели для многопанельного варианта) будет отображаться подсказка (свойство Hint) к тому элементу, над которым находится указатель мышки.

8 Панель инструментов

Для создания инструментальной панели используется компонент ToolBar.

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

Свойства компонента ToolBar

Свойство

Тип

Описание

HideClippedButtons

Boolean

Определяет обработку кнопок, затененных смежной панелью инструментов

ButtonCount

Integer

Указывает количество кнопок, расположенных на панели

ButtonHeight

Integer

Определяет высоту элементов управления, расположенных на панели

Buttons

Array of TToolButton

Содержит массив всех кнопок, имеющихся на панели

ButtonWidth

Integer

Определяет высоту кнопок, расположенных на панели

Customizable

Boolean

Определяет возможность настройки панели пользователем

CustomizeKeyName

string

Определяет имя раздела в реестре, в котором будет сохраняться информация о пользовательских настройках

CustomizeValueName

string

Определяет имя записи в реестре, в которой будет сохраняться информация о пользовательских настройках

DisabledImages

TCustomImageList

Определяет коллекцию картинок для неактивного состояния кнопок (т.е. когда кнопка недоступна)

Flat

Boolean

Определяет, долена ли панель быть прозрачной (в стиле MSIE 3)

HotImages

TCustomImageList

Определяет коллекцию картинок для активного состояния кнопок (т.е. в момент, когда указатель мышки находится над кнопкой)

Images

TCustomImageList

Определяет коллекцию картинок для обычного состояния кнопок

Indent

Integer

Определяет поле по левой стороне панели

List

Boolean

Определяет вид выравнивания картинок и текста

Menu

TMainMenu

Позволяет связать панель инструментов с главным меню

RowCount

Integer

Указывает на количество строк кнопок панели

ShowCaptions

Boolean

Определяет, должны или нет отображаться текстовые подписи к кнопкам (т.е. их Caption)

Transparent

Boolean

Определяет, будет ли панель прозрачной. Не оказывает влияния на сами кнопки

Wrapable

Boolean

Определяет, должны ли кнопки автоматически переноситься, если не помещаются в одну строку

EdgeBorders

TEdgeBorders

Определяет, по каким сторонам панели будут видны рамки

EdgeInner

TEdgeStyle

Определяет вид внутренних рамок. Допустимые значения: esNone, esRaised и esLowered

EdgeOuter

TEdgeStyle

Определяет вид внешних рамок. Допустимые значения: esNone, esRaised и esLowered

Наиболее важным для панели инструментов свойствами является такое свойство, как Images, поскольку именно коллекция картинок определяет вид кнопок. Размеры кнопок, находящихся на панели инструментов, всегда одинаковые, и задаются при помощи свойств ButtonHeight и ButtonWidth. Немаловажное влияние оказывают на вид панели свойства List и ShowCaption. Если установить свойство List в истину, то текст и картинка будут в строку, текст будет справа, картинка - слева.

Кнопока ToolButton вы не найдете на палитре инструментов. Их можно добавить, воспользовавшись контекстным меню панели, для чего следует выбрать пункт New Button. Самые важные свойства кнопок - это ImageIndex, определяющее номер картинки в коллекции изображений, ассоциированной с панелью, на которой находится данная кнопка, и Caption, определяющее ее текстовую подпись. Впрочем, эта самая подпись не будет видна, если только для самой панели не установлено в истину свойство List.

Кроме кнопок, на панелях инструментов часто используют разделители. Для помещения разделителя на панель из ее контекстного меню следует выбрать пункт New Separator. Основным отличием между "просто кнопкой" и разделителем является то, что если у стандартной кнопки свойство Style установлено в значение tbsButton, то у разделителя - в tbsSeparator. Такая кнопка-разделитель в работающей программе выглядит как пустое пространство между соседними кнопками. Если же требуется отделить группы кнопок более явно, то можно использовать другой стиль кнопки-разделителя, установив свойство Style в tbsDivider, что добавит разделителю вертикальную черту.

Помимо 3 уже рассмотренных значений, для свойства Style предусмотрено еще 2: tbsCheck и tbsDropDown. Если выбран вариант tbsCheck, то она "залипает" при первом нажатии, и "отлипает" при следующем. Что касается стиля tbsDropDown, то он используется для создания комбинированной кнопки-меню.

Создадим небольшое демонстрационное приложение. Поместим на форму компонент ToolBar. Из группы Win32 нам понадобится еще один компонент - ImageList, а из группы стандартных (на закладке Standard) - PopupMenu. Теперь создадим кнопки. Для этого, используя контекстное меню компонента ToolBar, последовательно добавим 9 элементов в такой последовательности: 1-й - кнопка (Add Button), 2-й - разделитель (Add Separator), 3-й - кнопка, 4-й - разделитель, 5-й - кнопка, 6-й - разделитель, и оставшиеся 3 - кнопки. Теперь для 2-го и 3-го разделителей, при помощи инспектора объекта, установим стиль tbsDivider. Затем для кнопки, оказавшейся между разделителями с вертикальной чертой, установим стиль tbsDropDown. После этого выберем все 3 последние кнопки, для чего используем клавишу Shift, и установим для них свойство Style в tbsCheck, а Grouped - в истину. В результате панель инструментов примет вид:

Теперь следует заняться свойствами самой панели, для чего, в первую очередь, следует определить изображения. Для этого надо будет воспользоваться редактором компонента ImageList, добавив в него 6 изображений - по числу имеющихся у нас кнопок. После этого свойству Images панели инструментов присвоим значение ImageList1, т.е. коллекцию картинок. Сразу после этого все кнопки получат соответствующие иконки.

Чтобы визуально отделить панель от остальной части окна, в ее составном свойстве EdgeBorders следует установить для ebBottom значение True. Таким образом, само свойство EdgeBorders получит значение [ebTop,ebBottom], а рамка будет видна не только по верхней, но и по нижней границе панели.

Остается разобраться только с той кнопкой, для которой мы установили стиль tbsDropDown. Прежде всего, надо определить меню, которое будет раскрываться при щелчке пользователем по стрелке. Для этого мы уже поместили на форму компонент PopupMenu, так что надо лишь создать в нем несколько пунктов. После этого необходимо ассоциировать это меню с кнопкой, для чего в инспекторе объекта найдем для данной кнопки свойство DropDownMenu и установим в качестве его значения имя контекстного меню - PopupMenu1.