
- •Введение
- •Начальные сведения о программах на языке Pascal
- •Структура Pascal-программы
- •Внешний вид исходного текста программы
- •Простейшие операторы
- •Ввод и вывод: консоль
- •Типы данных и операции
- •Операции и выражения
- •Приведение типов данных
- •Операции
- •Составной оператор
- •Инструкции выбора
- •Процедуры и функции
- •Множества
- •Сортировки массивов
- •Улучшенные сортировки
- •Рекурсия
- •Модуль GraphAbc
- •Указатели в Паскале
- •Динамически распределяемая память
- •Динамические структуры данных
- •Списочные структуры
- •Текстовые файлы
- •Бинарные файлы
- •Типизированные файлы
- •Нетипизированные файлы
- •Элементы комбинаторики
- •Матрица смежности.
- •2. Массив ребер.
- •3. Списки инцидентности.
- •4. Списки смежности.
- •Части графа.
- •Методы обхода графа.
- •Поиск в глубину.
- •Поиск в ширину.
- •Поиск кратчайших путей.(Алгоритм Дейкстры).
- •Основы ооп
- •Классы объектов
- •Принципы ооп
- •Создание и уничтожение объектов
- •Полиморфизм и наследование в Delphi
- •Наследование
- •Полиморфизм
- •Статическое замещение методов.
- •2) Перегрузка
- •Интегрированная среда разработки Delphi 7
- •Стандартные компоненты Delphi
- •Дополнительные компоненты
- •Другие дополнительные компоненты
- •Компоненты 32-разрядного интерфейса
- •Коллекция картинок
- •2 Индикатор выполнения
- •3 Ползунок
- •Реверсивный счетчик UpDown
- •Редактор горячих клавиш
- •Компоненты для работы с датами
- •Строка состояния
- •8 Панель инструментов
- •9 Элементы с вкладками
- •10 Компонент RichEdit
- •Компоненты вкладки Dialogs Страница Dialogs
- •Диалог выбора шрифта — компонент FontDialog
- •Диалог выбора цвета — компонент ColorDialog
- •Диалоги печати и установки принтера — компоненты PrintDialog и PrinterSetupDialog
- •Диалоги поиска и замены текста — компоненты FindDialog и ReplaceDialog
- •Страница Samples
- •Графические возможности Delphi 7
- •Формирование изображений программным способом
- •Мультимедиа-возможности Delphi
- •Компонент Animate
- •Компонент MediaPlayer
- •Воспроизведение звука
- •Просмотр видеороликов и анимации
- •Компоненты доступа к базам данных. Компоненты представленя данных.
Строка состояния
Многие приложения имеют строку состояния - полосу внизу главного окна, отображающую состояние наиболее важных для данной программы индикаторов.
Компонент 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.