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);