TPageControl — набор страниц с вкладками
Компонент TPageControl, в отличие от компонента TTabControl, может содержать несколько перекрывающих друг друга страниц (панелей) класса TTabSheet. Каждая страница выбирается щелчком на связанной с ней вкладке и может содержать свой набор помещенных на нее компонентов. Чтобы на этапе конструирования добавить новую страницу или выбрать ранее вставленную, щелкните на компоненте правой кнопкой мыши и выберите в контекстном меню команду New Page (Новая страница), Next Page (Следующая страница) или Previous Page (Предыдущая страница). Смена страниц идет циклически, т. е. после показа последней отображается первая и наоборот.
Помимо свойств HotTrack, MultiLine, ScrollOpposite, TabHeight, TabPosition и TabWidth, которые аналогичны одноименным свойствам компонента TTabControl, компонент TPageControl имеет специфические свойства:
Свойство | Описание |
property ActivePage: TTabSheet; | Содержит ссылку на активную страницу. Установка нового значения ActivePage размещает соответствующую страницу поверх остальных. Для выбора новой страницы следует использовать методы SelectNextPage и FmdNextPage |
property PageCount: Integer; | Содержит количество страниц (только для чтения) |
property Pages[Index: Integer]: TTabSheet; | Возвращает ссылку на страницу по ее индексу (только для чтения) |
Методы компонента TPageControl:
Метод | Описание |
function FindNextPage (CurPage: TTabSheet; GoForward, CheckTabVisible: Boolean): TTabSheet; | Ищет следующую страницу. CurPage — текущая страница, GoForward— содержит значение True, если поиск идет от первой страницы к последней, CheckTabVisible— содержит значение True, если из поиска исключаются страницы с признаком TabVisible=False. Возвращает ссылку на найденную страницу. Если страница CurPage не принадлежит компоненту, возвращает ссылку на первую или последнюю страницу в зависимости от параметра GoForward. |
procedure SelectNextPage (GoForward: Boolean); | Делает активной другую страницу: если GoForward=True, активизируется следующая страница, в противном случае — предыдущая |
TAnimate — анимация
Компонент TAnimate представляет собой проигрыватель видеоклипов формата AVI (Audio Video Interleaved — чередование аудио и видео). Компонент воспроизводит визуальную часть файла AVI и игнорирует его звуковое сопровождение. Он способен показывать лишь несжатое изображение или {изображение, сжатое по методу RLE (Run-Length Encoding). Изображение воспроизводится в отдельном потоке команд, что освобождает ресурсы программы для выполнения необходимой работы на фоне воспроизведения клипа.
Выполним следующие инструкции:
Скопируйте файл Demos\Coolstuf\Cool.avi в ваш рабочий каталог (каталог Demos располагается в каталоге размещения Delphi).
На пустую форму поместите компоненты Animate, ProgressBar, Timer-(вкладка System) и кнопку BitBtn. Таймер необходим для имитации достаточно длительного по времени процесса, который будет отображаться в-индикаторе ProgressBar на фоне вращающейся надписи "COOL" в компоненте Animate .
Установите в свойство Enabled компонента Timer значение False, а в-его же свойство interval — значение 1000. Поместите в свойство visible-компонента ProgressBar значение False и сохраните форму в том же-каталоге, куда вы скопировали файл Cool.avi.
Создайте обработчики событий onСlick кнопки и onTimer таймера, как показано ниже.
procedure TForml.BitBtnlClick(Sender: TObject );
begin
Animatel.FileName := 'cool.avi'; // Указываем файл с клипом
Animate1.Active := True; // Запускаем клип
ProgressBar1.Show; // Показываем индикатор
Timer1.Enabled := True; // Включаем таймер
end;
procedure TForml.TimerlTimer(Sender: TObject);
begin
ProgressBar1.Position := ProgressBar1.Position + 1;
if ProgressBar1.Position >= ProgressBar1.Max then begin
Timer1.Enabled := False; // Выключаем таймер
ProgressBar1.Position := 0; // Готовим новый запуск
ProgressBar1.Hide; // Прячем индикатор
Animatel.Stop // Останавливаем клип
end;
end;
Свойства компонента TAnimate:
Свойство | Описание |
property Active: Boolean; | Разрешает/запрещает демонстрацию клипа во время демонстрации содержит значение True |
property AutoSize: Boolean; | Если содержит значение True, компонент автоматически устанавливает свои размеры так, чтобы полностью вместить изображение кадра |
property Center: Boolean; | Центрирует изображение кадра в границах компонента по горизонтали и по вертикали |
TCommonAVI = (aviNone, aviFindFolder, aviFindFile, aviFindComputer, aviCopyFiles, aviCopyFile, aviRecycleFile, aviEmptyRecycle, aviDeleteFile) ; property CommonAVI : TCommonAVI ; | Задает один из стандартных видеоклипов, входящих в библиотеку Shell32.dll (см. рис. 39) |
property FileName: TFileName; | Связывает компонент с AVI-файлом |
property FrameCount: Integer; | Содержит количество кадров, показанных с начала демонстрации клипа |
property FrameHeight: Integer; | Высота в пикселах одного кадра клипа |
property FrameWidth: Integer; | Ширина кадра |
property Open: Boolean; | Содержит значение True, если компонент связан с AVI-клипом и готов к работе |
property Repetitions: Integer; | Определяет количество повторений клипа Если 0, клип повторяется до тех пор, пока свойство Active содержит значение True |
property ResHandle: THandle; | Определяет дескриптор ресурсного файла, содержащего AVI-клип |
property ResHandle: THandle; | Определяет идентификатор ресурса с клипом в ресурсном файле |
property ResName: String; | Определяет имя ресурса с клипом в ресурсном файле |
property StartFrame: SmallInt; | Содержит номер начального кадра демонстрации (нумерация кадров начинается с 1) |
property StopFrame: SmallInt; | Содержит номер конечного кадра демонстрации (нумерация кадров начинается с 1 ) |
property Timers: Boolean; | Разрешает/запрещает синхронизацию по таймеру. Если содержит значение True, демонстрация синхронизируется сигналами таймера. Если содержит значение False, для демонстрации используется независимый поток команд |
property Transparent: Boolean; | Если содержит значение True, фон клипа не накладывается на фон компонента |
С помощью свойства commonAvi можно заставить компонент показывать один из стандартных видеоклипов.
Методы компонента TAnimate перечислены в таблице.
Методы компонента TAnimate:
Метод | Описание |
procedure Play (FromFrame , ToFrame: Word; Count: Integer) ; | Демонстрирует Count раз подряд фрагмент клипа, начиная с кадра FromFrame по ToFrame включительно (нумерация кадров начинается с 1) |
procedure Reset; | Восстанавливает исходное состояние компонента. Свойство Open вновь становится равным значению True, но свойство Active= False |
procedure Seek (Frame: SmallInt) ; | Пропускает и не показывает кадр с номером Frame (нумерация кадров начинается с 1) |
procedure Stop; | Прекращает показ клипа |
События компонента TAnimate:
Событие | Описание |
property OnClose: TNotifyEvent; | Возникает при установке значения False в свойство Open. Например, когда компонент демонстрирует несколько видеоклипов подряд |
property OnOpen: TNotifyEvent; | Возникает при установке значения True в свойство Open |
property OnStart: TNotifyEvent; | Возникает в момент начала демонстрации |
property OnStop: TNotifyEvent; | Возникает в момент прекращения демонстрации |
TTrackBar— ползунок
Компонент класса TTrackBar предназначен для плавного изменения числовой величины. Он во многом схож с элементом управления TScrollBar и отличается от него, в основном, оформлением.
Свойства компонента TTrackBar:
Свойство | Описание | |
property Frequency: Integer; | Определяет частоту нанесения меток 1 — каждое значение диапазона изменения имеет метку, 2 — каждое 2-е значение имеет метку и т д | |
property LineSize: Integer; | Определяет минимальное смещение ползунка при нажатии клавиш перемещения курсора или перетаскивании мышью | |
property Max: Integer; | Определяет максимальное значение диапазона изменения | |
property Min: Integer; | Определяет минимальное значение диапазона изменения | |
property Orientation: TTrackBarOrientation; | Определяет ориентацию компонента trHonzontal — горизонтальная, trVertical — вертикальная | |
property PageSize: Integer; | Определяет смещение ползунка при нажатии клавиш <Page Up>, <Page Down> или при щелчке мышью на концах шкалы | |
property Position: Integer; | Определяет текущее положение ползунка | |
property SelEnd: Integer; | Задает конечную позицию выделения | |
property SelStart: Integer; | Задает начальную позицию выделения | |
TTickMark = (tmBottomRight, tmTopLeft, tmBoth); property TickMarks: TTickMark; | Определяет способ нанесения меток tmBottomRight — внизу или справа, tmTopLeft— вверху или слева, tmBottom — по обеим сторонам | |
TTickStyle = (tsNone, tsAuto, tsManual); property TickStyle: TTickStyle; | Определяет стиль нанесения меток. tsNone — нет меток, tsAuto — метки наносятся с частотой Frequence, tsManual — наносятся начальная и конечная метки, остальные наносит программа с помощью метода SetTick | |
С помощью следующего метода метка устанавливается в позицию, определяемую значением value: procedure SetTick(Value: Integer);