Разработка приложения с использованием компонентов управления: кнопки, таймер, переключатели




Цель работы: изучение свойств и методов компонентов, расположенных на странице Additional системы Delphi, и закрепление практических навыков работы с ними. Научиться использовать компонент Timer.

 

Введение

Страница Additional системы Delphi также включает компоненты, которые наиболее часто используются при формировании пользовательского интерфейса приложения. К этим компонентам относятся:

Кнопка TBitBtn. Представляет разновидность стандартной кнопки Button. На этих кнопках можно размещать растровые рисунки (пиктограммы). Большое их количество находится в папке Program Files\Common Files\Borland Share\Images\But-tons. Рисунки загружаются на кнопки в свойство Glyph. Но можно использовать для этого рисунки и из других графических файлов.

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

Свойство Kind определяет вариант используемого рисунка. Существуют 11 стандартных вариантов надписи с префиксом bk на кнопках такого вида.

? Help X Cancel q Retry X No X Abord All
Ö OK Ö Yes Close Ignore Custom  

Кнопка Close по умолчанию закрывает главное окно программы и завершает ее.

Любая из этих кнопок, кроме bkCustom и bkHelp, закрывает модальное окно. Кнопка Help автоматически вызывает раздел справочной службы, связанной с формой.

Если задается свойство Glyph, то автоматически устанавливается значение Kind = bkCustom.

Свойство Layout определяет край кромки кнопки, к которой прижимается рисунок, и может принимать следующие значения: blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom.

Свойство Margin:integer определяет расстояние в пикселях от края кнопки до пиктограммы.

Свойство Spacing:integer определяет расстояние в пикселях от пиктограммы до надписи на кнопке.

У этой кнопки есть также свойства Cancel и Default, определенные для кнопки Button.

 

Кнопка TSpeedButton. Такие кнопки во многом похожи на предыдущие, но есть определенные отличия:

- они могут фиксироваться в нажатом состоянии;

- не могут закрывать модальные окна;

- кнопка всегда должна входить в группу кнопок (группа может состоять из одной кнопки). Номер группы задается свойством GroupIndex: integer, которое не может равняться 0.

Поведение кнопки определяется свойством AllowAllUp: boolean - если свойству задано значение True, то утопленная кнопка отпускается только при нажатии другой кнопки из этой группы. В противном случае кнопка отпускается повторным нажатием.

Состояние кнопки определяется свойством Down: boolean - если оно равно значению True, то кнопка утоплена. Это свойство можно менять программно.

Для этой кнопки дополнительно определено событие OnDblClick.

Редактор TMaskEdit. Предназначен для ввода текста, соответствующего некоторому шаблону, задаваемому свойством EditMask: string. Если это свойство не задано, то этот редактор работает как обычный редактор Edit. Задан ли шаблон, определяется свойством IsMasked: boolean.

Свойство EditText: string содержит введенный в редактор текст, а свойство Text: string - результат работы шаблона (если он задан, в противном случае значения этих двух свойств совпадают).

Шаблон состоит из трех частей, разделенных;. Сначала идет маска, затем переключатель передачи, далее символ-заполнитель.

Переключатель передачи - это 1 или 0. При 1 в свойство Text передается результат применения шаблона, при 0 - исходный текст.

Пример приглашения для ввода телефонного номера: ХХ-ХХ-ХХ. Здесь символ Х стоит в третей части шаблона, т.е. является символом-заменителем.

Сама маска может включать символы трех типов: описатели полей ввода, специальные символы и литералы.

Описатели указывают, какой именно символ можно ввести в данной позиции (но только одной). Виды описателей:

L - буква;

l - может быть буква;

А - буква или цифра;

а - может быть буква или цифра;

С - любой символ;

с - может быть любой символ;

0 - цифра;

9 - может быть цифра;

# - может быть цифра или знаки +, -.

Специальные символы:

: - разделитель для часов, минут, секунд;

/ - разделитель полей даты;

; - разделитель частей шаблона;

! - подавляет все ведущие пробелы;

> - следующие за ним все буквы преобразуются в заглавные;

< - следующие за ним все буквы преобразуются в строчные;

<> - отменяются все преобразования букв.

Литералы при вводе информации пользователем появляются в тексте автоматически (например дефис (-) в телефонном номере). Если в литерале надо использовать один из предыдущих зарезервированных символов, то перед ним надо поставить символ \.

 

Таблица TStringGrid. Это таблица, в ячейки которой можно заносить текстовые строки. Стандартно (по умолчанию) одна строка выделяется для оглавления столбцов и один столбец - для нумерации строк. Данные элементы таблицы неподвижны при пролистывании таблицы. Но это количество строк и столбцов можно увеличить. Данные количества задаются свойствами FixedCols и FixedRows.

Таблица отображается в окне (форме). Если таблица не умещается в форме, то появляются линейки прокрутки. Размер окна можно изменить мышью.

Все ячейки таблицы имеют матричную нумерацию, которая начинается с нуля, т.е. ячейка левого верхнего угла имеет координаты [0, 0].

Ширину ячеек можно менять свойством DefaultColWidth (по умолчанию она составляет 64 пикселей). Высота строк задается свойством DefaultHeight (по умолчанию 8).

При значении True свойства DefaultDrawing: boolean неподвижные элементы таблицы закрашиваются серым цветом. В противном случае они выделяются более жирной рамкой.

Фон таблицы задается свойством Color.

При инициализации таблицы ее начальный размер (по умолчанию) составляет 6 х 6 ячеек. Число столбцов в дальнейшем можно менять свойством ColCount: integer. Аналогично - число строк задается свойством RowCount: integer.

Между ячейками существуют разделительные линии, толщина которых задается свойством GridLineWidth: integer.

Содержимое каждой отдельной ячейки хранится в свойстве Cells[<столбец>, <строка>]. Подобная адресация позволяет заносить значения в таблицу или считывать из нее в цикле. Пример:

Form1.StringGrid1.Cells[StringGrid1.Col, StringGrid1.Row]:= Form1.StringGrid1.Cells[String-Grid1.Col, StringGrid1.Row] + Chr(Key).

Занесение происходит по событию OnKeyDown, генерируемому таблицей.

Свойство Cols(index: integer): TStrings содержит все строки столбца с номером Index, а Rows(index: integer): TStrings - строки.

В процессе выполнения программы пользователь может мышью выделить блок ячеек таблицы. Параметры выделенного блока доступны программно через сложное свойство таблицы Selection. Оно определяет границы выделения и состоит, в пером случае, из четырех значений: Selection.Left, Selection.Top, Selection.Right, Selection.Bottom. Во втором случае выделяются левый верхний и правый нижний углы, а затем для них фиксируются координаты Х и Y: Selection.TopLeft.X и Selection.TopLeft.Y, Selection.BottomRight.X и Selection.BottomRight.Y. Текущая ячейка представляет собой частный случай выделения блока, поэтому для нее Selection.Left = Selection.Right, Selection.Top = Selection.Bottom и Selection.TopLeft.X = Selection.BottomRight.X, Selection.TopLeft.Y = Selection.BottomRight.Y.

У таблицы есть свойство Align, которое определяет режим размещения таблицы на пространстве формы.

Таблица TDrawGrid. Обладает б о льшей гибкостью по сравнению с предыдущей таблицей. Также содержит фиксированную (которая может отсутствовать) и рабочую части. Но фиксированная часть используется не только для отображения заголовков строк и столбцов, но и для фиксации их размеров, т.е. строки и столбцы могут быть разного размера. Если таблица не умещается в рабочую область, для нее автоматически создаются линейки прокрутки.

Свойство Его назначение
BorderStyle Определяет наличие/отсутствие внешней рамки таблицы
ColCount: LongInt Количество столбцов таблицы
ColWidths(Index: LongInt) Ширина столбца с номером Index
FixedColor: TColor Цвет фиксированной зоны
FixedCols: Integer Количество столбцов фиксированной зоны
FixedRows: Integer Количество строк фиксированной зоны
GridHeight: Integer Высота таблицы
GridLineWidth: Integer Толщина разделительных линий в таблице
GridWidth: Integer Ширина таблицы
Options Параметры таблицы
RowCount: LongInt Количество строк таблицы
RowHeights(Index: LongInt) Высота строки с номером Index

Свойство Options является составным. Оно включает следующий набор логических свойств (перечислена только их часть):

® goFixedVertLine - столбцы фиксированной зоны разделяются вертикальными линиями;

® goFixedHorzLine - строки фиксированной зоны разделяются вертикальными линиями;

® goVertLine - столбцы рабочей зоны разделяются вертикальными линиями;

® goHorzLine - строки рабочей зоны разделяются вертикальными линиями;

® goRowSizing - разрешает ручное (мышью) изменение высоты строк;

® goColSizing - разрешает ручное (мышью) изменение ширины столбцов;

® goRowMoving - разрешает ручное (мышью) перемещение строк;

® goColMoving - разрешает ручное (мышью) перемещение столбцов.

Контейнер TImage. Чаще всего используется для размещения на форме растрового изображения. Имеет одно важное преимущество при размещении графики по сравнению с пространством самой формы - при сворачивании и возврате назад изображение на пространстве TImage не исчезает, т.е. его не надо заново прорисовывать.

Загрузка изображения на компонент идет через свойство Picture.

Изображение может не совпадать по размерам с параметрами контейнера. Регулируются эти вопросы двумя свойствами:

· Stretch: boolean - разрешает/запрещает изменять размеры изображения так, чтобы оно заполняло всю область компонента;

· AutoSize: boolean - разрешает/запрещает изменять размеры контейнера так, чтобы в него полностью загрузилось изображение.

Другие свойства:

® Center: boolean - указывает, надо ли центрировать изображение в границах контейнера. Игнорируется при AutoSize = true или (Stretch = true и изображение не является пиктограммой ICO);

® Transparent: boolean - разрешает/запрещает накладывать собственный фон изображения на фон компонента;

® IncrementalDisplay: boolean - разрешает/запрещает показ большого изображения по мере его загрузки;

® Canvas - канва для создания изображений.



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-03 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: