18.7. КОМПОНЕНТЫ СТРАНИЦЫ SAMPLES

Компоненты этой страницы включены в Delphi как образцы (samples) разработки нестандартных компонентов, однако многие из них имеют вполне самостоятельное значение.

18.7.1. TGauge - индикатор величины

Компонент TGauge предназначен для отображения некоторой изменяющейся числовой величины. Он отличается от TProgress разнообразием форм (см. рис. 18.45).

Рис. 18.45. Различные формы компонента TGauge

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

property BackColor: TColor; property ForeColor: TColor; TGaugeKind = (gkText, gkHorizon-talBar, gkVerticalBar, gkPie, gkNeedle) ; | Цвет незакрашенной части индикатора Цвет закрашенной части индикатора Определяет форму индикатора (см. рис. 18.44)
property Kind: TGaugeKind; property MaxValue: Longint; | Определяет максимальное значение диапазона изменения свойства progress
property MinValue: Longint; | Определяет минимальное значение диапазона изменения свойства progress
property PercentDone: Longint; | Содержит текущее значение progress в процентах от его диапазона изменения
property Progress: Longing; | Содержит текущее значение изменяющейся числовой величины
property ShowText: Boolean; | Если содержит True, в центре компонента выводится строковое представление значения PercentDone

С помощью метода

procedure AddProgress(Value: Longint);

к текущему значению progress можно добавить величину value.

18.7.2. TColorGrid - выбор или отображение цвета

Компонент предназначен для выбора и/или отображения цветов из 16-цветной палитры. Выбирать/отображать можно два цвета: основной и фоновый. Основной выбирается щелчком левой кнопки мыши и отображается символами fg, фоновый выбирается правой кнопкой и отображается символами bg (если оба цвета совпадают, соответствующая клетка таблицы помечается символами fb).

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

property BackgroundColor: TColor; | Содержит выбранный фоновый цвет
property BackgroundEnabled: Boolean; | Разрешает/запрещает выбор фонового цвета. Игнорируется, если clickEnablesColor имеет значение True
property Backgroundlndex: Integer; | Содержит индекс выбранного фонового цвета
property ClickEnablesColor: Boolean; | Разрешает/запрещает выбор цветов
type TGridOrdering = (gol6xl,go8x2, go4x4, go2x8, golxl6); property GridOrdering: TGridOrdering; | Определяет конфигурацию таблицы: первая цифра - количество столбцов, вторая - количество рядов
property ForegroundColor: TColor; | Содержит выбранный основной цвет
property ForegroundEnabled: Boolean; | Разрешает/запрещает выбор основного цвета. Игнорируется, если ClickEnablesColor имеет значение True
property Foregroundlndex: Integer; | Содержит индекс выбранного основного цвета
property Selection: Integer; | Содержит индекс последнего выбранного цвета

Индекс цвета - это число в диапазоне О... 15, указывающее номер соответствующей ячейки в порядке перехода от самых темных цветов к самым светлым: 0 - ячейка с черным цветом, 1 - с коричневым, ..., 15 - с белым цветом.

Пары свойств BackgroundEnabled - ClickEnablesColor И ForegroundEnabled - ClickEnablesColor запрещают выбор и отображение соответствующего цвета только в том случае, когда каждое из них имеет значение False. Однако даже в этом случае свойство selection хранит номер ячейки таблицы, по которой последний раз был произведен щелчок левой или правой кнопкой мыши. Это свойство изменяется до возникновения события от мыши и при необходимости может использоваться для выбора цвета без его отображения. С помощью метода

function ColorToIndex(AColor: TColor): Integer;

программа может получить индекс табличного цвета, наиболее близкого к цвету AColor. Событие

property OnChange: TNotifyEvent;

возникает только при разрешенном выборе/отображении соответствующего цвета.

18.7.3. TSpinButton - спаренная кнопка

В отличие от компонента TUpDown (см. п. 18.3.7) компонент TSpinButton не связан с регулированием числовой величины и может использоваться просто как пара кнопок: верхняя (up) и нижняя (Down). Для компонента следует написать обработчики его событий onup-click и onDownciick, в которых реализуется реакция программы на щелчок по той или иной кнопке.

Рисунки на кнопках определяются свойствами upGlyph и DownGiyph. Каждый рисунок может содержать 1, 2 или 3 изображения: 1-е - для нормальной кнопки, 2-е - для запрещенной, 3-е - для нажатой.

18.7.4. TSpinEdit - редактор для ввода целого числа

Компонент TSpinEdit предназначен для ввода/отображения числа. Он представляет собой комбинацию специализированного потомка однострочного редактора rcustomEdit и кнопок TSpinButton. Редактор способен вводить только числа (в этом и заключается его специализация), а кнопки используются для изменения числа на некоторую фиксированную величину.

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

property Button: TSpinButton; | Содержит ссылку на встроенный объект TSpinButton
property EditorEnabled: Boolean; | Разрешает/запрещает использовать редактор для ручного ввода числа
property Increment: Longint; | Содержит число, на которое будет изменяться свойство value при нажатии кнопок TSpinButton
property MaxValue: Longint; | Содержит верхнюю границу диапазона возможных значений value
property MinValue: Longint; | Содержит нижнюю границу диапазона возможных значений value
property Value: Longint; | Содержит текущее значение числовой величины

18.7.5. TDirectoryOutLine - отображение структуры каталогов

Компонент предназначен для отображения древовидной структуры каталогов (см. рис. 18.46). В отличие от TDirectoryListBox (см. п. 18.6.7) компонент отображает полную структуру каталогов, а не маршрут доступа к одному из них.

Рис. 18.46. Окно компонента TDirectoryOutLine

Компонент является наследником класса TCustomOutLine, и поэтому многие его свойства (itemHeight, Optins, PictureXXX, ShowBars и Style) совпадают с аналогичными свойствами другого наследника этого класса - компонента TOutLine. Свойство TTextCase = (tcLowerCase, tcUpperCase, tcAsIs) ;

property TextCase: TTextCase;

определяет высоту букв в именах каталогов: tcLowerCase - строчные буквы; tcUpperCase - заглавные буквы; tcAsis - строчные и заглавные буквы.

Следующие два свойства доступны только на этапе прогона программы:

property Drive: Char;

property Directory: TFileName;

Первое определяет выбранный диск, второе - выбранный каталог.

18.7.6. TCalendar - ввод и отображение даты

Компонент TCalendar отображает календарь на выбранный месяц и год. Его свойства Day, Month и Year могут содержать любую дату от 1 до 9999 года от Рождества Христова.

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

property CalendarDate: ~DateTime; property CellText[ACol, ARow: Integer]: String; property Day: Integer; property GridLineWidth: Integer; | Содержит выбранную дату Содержит текст в ячейке календаря на пересечении столбца ACol с рядом ARow (только для чтения) Определяет выбранный день месяца
property Month: Integer; property Readonly: Boolean; | Устанавливает толщину линий таблицы календаря Определяет выбранный месяц Если содержит True, пользователь не может выбрать другую дату
type TDayOfWeek = 0..6;property StartOfWeek: TSayOfWeek; | Определяет день недели, который будет отображаться в самом левом столбце таблицы
property UseCurrentDate: Boolean; | Если содержит True, компонент будет показывать текущую системную дату
property Year: Integer; | Определяет выбранный год
Методы компонента:
procedure NextMonth; procedure NextYear; procedure PrevMonth; | Показывает календарь на следующий месяц Показывает календарь на следующий год Показывает календарь на предыдущий месяц
procedure PrevYear; | Показывает календарь на предыдущий год