КОМПОНЕНТЫ СТРАНИЦЫ WIN32


TTabControl - набор закладок
Компонент TTabControl представляет собой контейнер с закладками. Свойство Tabs определяет названия и количество закладок. Событие onchange. возникает при выборе новой закладки и позволяет управлять содержимым окна компонента. Для примера на показано использование компонента для управления календарем (с помощью TTabControl созданы закладки с названиями месяцев).
Свойства компонента:

 
Помимо события OnChange, возникающего после выбора новой закладки, для компонента определено также событие OnChanging, которое возникает перед сменой закладки:
type TTabChangingEvent =
procedure (Sender: TObject;
var AllowChange: Boolean) of object;
property OnChanging: TTabChangingEvent;
Обработчик события может запретить выбор закладки, вернув в параметре Alliowchange значение False.
TPageControl - набор страниц с закладками
Компонент TPageControl в отличие от TTabControl может содержать несколько перекрывающих друг друга панелей класса ттаь-Sheet. Каждая панель выбирается связанной с ней закладкой и может содержать свой набор помещенных на нее компонентов.
Чтобы на этапе конструирования добавить новую панель или выбрать ранее вставленную, щелкните по компоненту правой кнопкой мыши и выберите New page (новая панель), Next page (следующая панель) или previous page (предыдущая панель). Смена панелей идет циклически, т. е. после показа последней показывается первая и наоборот.
Помимо свойств HotTrack, MultiLine, ScrollOpposite, TabHeight, TabPosition и TabWidth, которые аналогичны одноименным свойствам TTabcontrol, компонент имеет следующие специфичные свойства:


property ActivePage: TTab-Sheet;

Содержит ссылку на активную панель. Установка нового значения ActivePage размещает соответствующую панель поверх остальных. Для выбора новой панели следует использовать методы SelectNextPage и FindNextPage

property ActivePageIndex: Integer;

Содержит индекс активной панели

property PageCount: Integers;

Содержит количество панелей (только для чтения)

property Pages[Index: Integer] : TTabSheet;

Возвращает ссылку на панель по ее индексу (только для чтения)

Методы компонента:


function FindNextPage (CurPage: TTabSheet; GoFor-ward, CheckTabVisible: Boolean) : TTabSheet;

Ищет следующую панель: CurPage - текущая панель; GoForward - содержит True, если поиск идет от первой панели к последней; CheckTabVisible -содержит True, если из поиска исключаются панели с признаком Tabvisible=False. Возвращает ссылку на найденную панель. Если CurPage не принадлежит компоненту, возвращает ссылку на первую или последнюю панель в зависимости от параметра GoForward

procedure SelectNextPage (GoForward: Boolean);

Делает активной следующую панель. Если GoFor-ward=True, активизируется следующая панели, в противном случае - предыдущая

TImageList - хранилище изображений
Компонент класса TImageList представляет собой контейнер для хранения множества рисунков одинакового размера. Он может быть полезен при программном создании набора инструментальных кнопок, секций управляющего заголовка, при разработке программ, использующих анимационные эффекты, и вообще там, где требуется индексированный доступ к изображениям.
Компонент не имеет собственной канвы и поэтому не может самостоятельно отображать хранимые в нем картинки, которые могут быть растрами (bmp) или пиктограммами (ico). Его метод Draw получает канву от другого компонента и рисует изображение в клиентской области этого компонента. В компоненте есть множество специальных свойств и методов, упрощающих обслуживание набора картинок. Для получения дополнительной информации обратитесь к встроенной справочной службе. Пример использования компонента см. в п. 18.2.13.
TRichEdit - ввод и отображение RTF-текста
Компонент TRichEdit представляет собой многострочный редактор, работающий с расширенным текстовым форматом RTF. Текст формата RTF хранит дополнительную служебную информацию, управляющую свойствами каждого абзаца и сменой шрифта по ходу текста.
На показан пример использования возможностей компонента. Полный текст программы, с помощью которой создан рисунок, приводится в папке demos | RICHEDIT | RICHEDIT.DPR, котораянаходится в каталоге размещения Delphi.
Компонент использует вспомогательные объекты класса TTextAt-tributes для хранения атрибутов шрифта. Эти атрибуты распространяются на весь текст через свойство редактора DefAttributes или на выделенную часть текста - через его свойство SeiAttributes.
Помимо обычных шрифтовых свойств CharSet, Color, Height, Name, Pitch, Size И Style (см. класс TFont) объект TTextAttributes содержит также свойства consistentAttributes и protected. Первое доступно только для чтения и содержит набор текстовых характеристик, общих как для всего текста, так и для его выделенной части. Свойство protected защищает весь текст или его части от редактирования. Попытка изменить текст, имеющий атрибут protected, вызывает обработчик события OnProtectChange, который может разрешить или запретить изменения. По умолчанию изменения запрещены.
Для каждого текстового абзаца создается объект класса трага-Attributes, в котором сохраняются атрибуты абзаца. Эти атрибуты доступны через следующие свойства класса TparaAttributes:

 
Свойства класса TRichEdit

Методы компонента:

Для компонента определены такие события:

TTrackBar-регулятор величины

Компонент класса TTrackBar предназначен для визуального управления числовой величиной. Он во многом схож со стандартным элементом TScroll-Ваг и отличается от него в основном оформлением.
Свойства компонента:

 С помощью метода
procedure SetTick(Value: Integer);
устанавливается метка в позицию, определяемую значением value.
TProgressBar - индикатор прогресса

Компонент TProgressBar предназначен для отображения хода выполнения длительного по времени процесса. Он имеет много общего с TSrollBar и TTrackBar, но в отличие от них у него нет ползунка, т. е. с его помощью можно только отображать числовую величину, но пользователь не может ее изменять.
Свойства компонента:

 Методы компонента:


procedure StepBy(Delta: Integer); procedure Stepit;

Наращивает значение свойства Position на величину Delta Наращивает значение свойства Position на величину, определяемую свойством step

TUpDown - спаренная кнопка

Компонент TUpDown предназначен для регулирования числовой величины. Он имеет пару кнопок, с помощью которых величина наращивается или уменьшается. Обычно компонент TUpDown связан с другим компонентом класса TEdit, который отображает регулируемую величину и при необходимости может редактировать ее. Связанный компонент называется компаньоном.
Свойства компонента:

Для компонента определены события
type TUDChangingEvent = procedure (Sender: TObject;
var AllowChange: Boolean) of object;
property OnChar.ging: TUDChanginEvent;
И
type TUDBtnType = (btNext, btPrev) ;
type TUDClickEvent = procedure (Sender: TObject; Button:
TUDBtnType) ;
property OnClick: TUDClickEvent;
Первое возникает при любом изменении регулируемой величины. Обработчик события в параметре AllowChange сообщает, может ли величина измениться. Второе - при щелчке по кнопкам элемента. Параметр Button определяет нажатую кнопку: btprev - вниз или влево; btNext - вверх или вправо.
THotKey - ввод акселератора
Компонент THotKey служит для ввода или отображения клавиш быстрого выбора (в терминологии Windows их называют горячими клавишами, или акселераторами). При вводе компонент работает
как специализированный однострочный редактор, который распознает нажатие сдвиговых клавиш Shift, Ctrl и Alt и преобразует их в текст <<shift+x”, “ctrl+x” или “Alt+x”, где х - символ совместно нажатой клавиши. Допускается одновременное нажатие двух или
Трех сдвиговых клавиш: Alt+Shift+X, Ctrl+Shift+Alt+X И Т. П.
Свойства компонента:

TAnimate - отображение анимации


Компонент TAnimate представляет собой проигрыватель видеоклипов формата AVI (Audio Video Interleaved - чередование аудио и видео). Компонент воспроизводит видеочасть файла AVI и игнорирует его звуковое сопровождение. Он способен показывать лишь несжатое изображение или изображение, сжатое по методу RLE (Run-Length Encoding). Изображение воспроизводится в отдельном потоке команд, что освобождает ресурсы программы для выполнения необходимой работы на фоне демонстрации клипа.
Если вы захотите посмотреть компонент в действии (выполните следующее:
Скопируйте файл demos | cool: cool. avi в ваш рабочий каталог (каталог demos распологался в каталоге размещения Delphi).

  • На пустую форму положите компоненты Animate, ProgressBar, Timer (страница System) и кнопку BitBtn. Таймер необходим для имитации достаточно длительного по времени процесса, который будет отображаться в ProgressBar на фоне вращающейся надписи “COOL” в компоненте Animate.
  • Установите в свойство Enabled компонента Timer1 значение False, а в его же свойство interval - значение 10. Поместите в свойство Visible компонента ProgressBarl значение False и сохраните форму в том же каталоге, куда вы скопировали файл COOL.AVI.
  • Создайте такой обработчик события OnClick кнопки BitBtn1:

procedure TForml.BitBtnlClick(Sender: TObject);
begin
Animatel.FileName := 'cool.avi'; // Указываем файлсклипом
Animatel.Active := True; // Запускаемклип
ProgressBarl.Show; // Показываем ProgressBar
Timeri.Enabled := True; // Включаемтаймер
end;

  • Создайте такой обработчик события onTimer компонента

Timer1:
procedure TFormI.TimerlTimer(Sender: TObject) ;
begin
ProgressBarl.Position := ProgressBarl.Position + 1;
if ProgressBarl.Position >= ProgressBarl.Max then
begin
Timeri.Enabled := False; // Выключаем, таймер
ProgressBarl.Positinr := о; // Готовим новый запуск
ProgressBarl.Hide; // Прячем ProgressBar
Animatel.Stop // Останавливаемклип
end;
end;
Свойства компонента:

property Timers: Boolean; property Transparent: Boolean;

Разрешает/запрещает синхронизацию по таймеру. Если True, демонстрация синхронизируется сигналами таймера. Если False, для демонстрации используется независимый поток команд Если содержит True, фон клипа не накладывается на фон компонента

 

С помощью свойства commonAvi можно заставить компонент показывать один из стандартных видеоклипов, показанных на
Методы компонента:


procedure Play(FromFrame, ToFrame: Word; Count: Integer);

Демонстрирует Count раз подряд фрагмент клипа, начиная с кадра FromFrame по ToFrame включительно (нумерация кадров начинается с 1)

procedure Reset;
procedure Seek(Frame: Smallint) ; procedure Stop;

Восстанавливает исходное состояние компонента. Свойство Open вновь становится True, но свойство Active = False Пропускает и не показывает кадр с номером Frame (нумерация кадров начинается с 1) Прекращает показ клипа

Для компонента определены следующие события:

property OnClose: TNotifyEvent;
property OnOpen: TNoti-fyEvent; property OnStart: TNoti-fyEvent; property OnStop: TNotifyEvent;

Возникает при установке значения False в свойство Open. Например, когда компонент демонстрирует несколько видеоклипов подряд Возникает при установке значения True в свойство Open Возникает в момент начала демонстрации
Возникает в момент прекращения демонстрации

TDateTimePicker - ввод и отображение даты/времени
Компонент предназначен для ввода и/или отображения даты или времени. На показаны различные варианты использования компонента.
При показе даты в режиме DateMode=dmComboBox календарь можно не раскрывать и установить дату вручную в верхнем окне. Это удобно, если нужно установить сразу и день, и месяц, и год. На раскрытом календаре изменить месяц можно небольшими кнопками вверхней части компонента. Календарь закрывается после выбора даты или при щелчке по раскрывающей кнопке. Установив в свойство Kind значение dtkTime, можно заставить компонент отображать время (справа на рисунке). Это время в момент установки компонента на форму соответствует системному времени, и в дальнейшем его можно изменить, задав новое значение в свойство Time.
Свойства компонента:

Для компонента определены следующие события:

property OnChange: TNotifyEvent;
 

Возникает при любом изменении содержимого компонента

property OnCloseUp: TNotifyEvent;

Возникает при закрытии календаря

property OnDropDown: TNotifyEvent;

Возникает при открытии календаря
 
 

TParseInputEvent = procedure (Sender: TObject; const User-String: String” var DateAndTime: TDateTime; var AllowChange: Boolean) of objects-property OnUserInput: TDTParseIn-putEvent;

Возникает при ручном вводе в окне редактора, если ParseInput=True.UserString -введенная пользователем строка; DateAndTime - значения свойств Date и Time. В параметре AllowChange обработчик разрешает или запрещает изменение даты или времени

TMonthCalendar - календарь

Как видно из рисунка слева, компонент предназначен для выбора или отображения даты. Он очень похож на календарь, который появляется В компоненте TDateTimePicker (при значении dmComboBox В свойстве DateMode), но в отличие от последнего может отображать одновременно несколько смежных месяцев - в зависимости от своих размеров.
Свойства компонента:

С компонентом связан объект класса
TMonthCalColors, имеющий такие свойства:BackColor - определяет цвет фона, разделяющего смежные месяцы; MonthBackColor- цвет фона дат; TextColor - цвет дат; TitIeBackColor - цвет фона заголовка
месяца: TitleTextColor - цвет текста заголовка; TrailingTextColor - цвет текста ведущих и ведомых дат

Определяет выбранную дату

Определяет конечную дату диапазона вы бранных дат

Определяет первый день недели
 
 
 
 

Содержит максимальную дату, месяц которой еще будет доступен для отображения в компоненте. Если свойство содержит пустое значение, отображается любой следующий месяц

Содержит максимальное количество дат в выбранном диапазоне

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

TTreeView - дерево иерархии


Компонент TTreeView служит для показа ветвящихся иерархических структур, таких как дерево наследования объектов или файловая структура диска. Он содержит связанные узлы, каждый из которых может содержать пиктограмму, текст и произвольный объект (подобно спискам TStringList ). Любой узел может иметь собственный список подузлов (которые можно раскрывать или закрывать щелчком мыши на пиктограмме узла.
Для наполнения списка на этапе конструирования программы нужно щелкнуть по компоненту правой кнопкой мыши и выбрать Items Editor., либо щелкнуть по нему дважды, либо, наконец, щелкнуть по кнопке в свойстве Items - во всех случаях на экране появится окно редактора компонента (
Чтобы начать наполнение, щелкните по кнопке New item и введите связанный с узлом текст в поле Text. С помощью image index панели item properties устанавливается индекс связанной с узлом пиктограммы, с помощью selected index - индекс пиктограммы для выбранного узла. Для ввода подузла любого уровня сначала нужно щелкнуть в окошке Items по узлу, который должен стать родительским, и лишь затем - на кнопке New subitem.
Для ввода списка в режиме прогона программы широко используется центральное свойство компонента - items типа TTreeNodes, открывающее индексированный доступ ко всем узлам списка. Каждый узел описывается классом TTreeNode, имеющим свои собственные методы и свойства. В частности, его свойство item содержит список всех подузлов данного узла; с помощью многочисленных методов свойства TTreeview. items к этому списку можно добавить новый подузел, а с помощью метода TTreeNode. MoveTo - переместить узел в любую позицию дерева иерархии.
Следующий обработчик события oncreate формы создал
procedure TForm1.PormCreate(Sender: TObject) ;
var
k: Integer;
begin with TreeViewl do
begin
// Добавляемкорневойузел
Items.Add (NIL,' Корень') ;
//Добавляем 10 вложенных узлов
for k := 1 to 10 do
Items.AddChild(Items[k-1],IntToStr(k))
end
end;
Свойства компонента TTreeview:

При программном заполнении списка следует пользоваться свойством TTreeView. Items класса TTreeNodes.
Свойства класса TTreeNodes:

Как уже отмечалось, каждый узел класса TTreeNode имеет свой набор методов, свойств и событий.
Свойства TTreeNode:

 
Методы класса TTreeNode:

TListView - список просмотра


Компонент TListView предназначен для показа и выбора нескольких элементов. Каждый элемент может содержать пиктограмму и текст и подобно TTreeView иметь список связанных с ним подэлементов. В отличие от TTreeview в TListView допускается не более одного уровня вложенности подэлементов. TListView показывает свои элементы в одной или нескольких колонках, с крупными или мелкими пиктограммами, а также в виде “отчетов”, представляющих элементы в двухмерной таблице: по вертикали изображаются элементы верхнего уровня, по горизонтали - вложенные подэлементчатели, упрощающие множественный выбор элементов.
Компонент может наполняться как на этапе конструирования, ты. Рядом с элементами могут показываться независимые переклютак и на этапе прогона программы
Выполните следующую несложную программу, которая продемонстрирует вам основные особенности использования компонента.
  На Пустую форму положите компоненты TListView, TImageList, TComboBox И TCheckBox.

  • Компонент ImageList1 будет служить контейнером для нескольких пиктограмм, отображаемых компонентом Listview. Для наполнения контейнера дважды щелкните по нему мышью или нажмите на нем правую кнопку и выберите продолжение ImageList Editor.
  • В появившемся окне редактора imageList нажмите кнопку Add и выберите файл images | ICONS | CHEMICAL[ См. замечание в начале главы. ].
  • Повторите п. 3 для выбора нескольких пиктограмм. Обратите внимание, что каждой помещаемой в imageListi пиктограмме редактор присваивает уникальный индекс.
  • Напишите такой обработчик события oncreate для формы:

procedure TForm1.FormCreate(Sender: TObject);
var
k: Integer;
Listltem: TListItem;
begin
with ListView1 do
begin
// Указываем источник изображений:
Smalllmages := ImageList1;
Largelmages := ImageList1;
// Наполняем ListViewl пиктограммамиитекстом:
for k := 0 to ImageListI.Count - 1 do
begin
// Добавляем элемент и получаем ссылку на него
Listltem := Items.Add;
// Указываем индекс связанного изображения
Listltem.Imagelndex := k;
// Вставляем надпись ImageN
Listltem.Caption := 'Image' + IntToStr(k);
end;
// Наполняемсписок ComboBoxl доступнымистилями ListView ComboBoxl.Items.AddObject('vslcon', TObject(vslcon)) ;
ComboBoxl.Items.AddObject('vsLisf, TObject (vsList)) ;
ComboBoxl.Items.AddObject('vsReporf, TObject(vsReport)) ;
ComboBoxl.Items.AddObject('vsSmall Icon',
TObject(vsSmallIcon)) ;
// Показываем первый стиль в Combo Box
ComboBoxl.Itemlndex := 0;
// Создаем колонку для режима vsReport:
Columns.Add; Columns[0].Caption := 'Колонка T;
Columns [.0 ] .Width := 80;
end;
end;

  • Напишите такие Обработчики событий ComboBoxl.OnChange И A. CheckBoxl.Click:

procedure TFormI.ComboBoxIChange(Sender: TObject);
begin
with ComboBoxl do
ListViewl.ViewStyle := TViewStyle(
I terns.Objects[Itemlndex]) ;
end;
procedure TFormI.CheckBoxIClick(Sender: TObject);
begin
ListViewl.CheckBoxes := CheckBoxl.Checked
end;

Некоторые важные свойства компонента:

Обратите внимание: чтобы компонент работал в режиме vsReport, необходимо создать хотя бы одну колонку. На этапе конструирования программы колонки создаются и изменяются с помощью редактора колонок, окно которого открывается после щелчка по компоненту правой кнопкой и выборе в локальном меню опции
Column Editor. Пример программного создания колонки показан на стр.483.
Класс TIconOption определяет дополнительные условия отображения узлов и имеет такие свойства:


type TIconArrangement = (iaTop, iaLeft) ; property Arrangement: TIconArrangement; property AutoArrange: Boolean;
property WrapText: Boolean;

Показывает способ расположения изображения: iaTop - слева направо (вверху колонки); iaLeft - сверху вниз слева от ряда колонок Если содержит True, элементы будут автоматически располагаться правильными рядами при изменении их количества Если содержит True, текст элемента может переноситься на границах слов на несколько строк, если он выходит за границы пиктограммы

При программном заполнении компонента центральную роль играет свойство Items класса TListItems.
Свойства класса TListItems:


property Count: Integers-property Item[Index: Integer]: TListItem;

Содержит количество элементов в item Открывает индексный доступ к элементам списка

Методы класса TListItems:

function Add: TListItem; procedure Assign(Source: TPersis-tent); override; procedure BeginUpdate;
procedure Clear;
procedure Delete(Index: Integers-procedure EndUpdate;” function IndexOf(Value: TListItem) : Integers-function Insert(Index: Integer): TListItem; procedure SetCount(Value: Integer) ;

Добавляет очередной элемент к списку Связывает список компонента со списком компонента source Блокирует обновление экрана до тех пор, пока не будет выполнен метод EndUpdate. Используется при одновременной вставке нескольких элементов списка для предотвращения мерцания экрана Очищает список Удаляет элемент списка с индексом index Отменяет действие BeginUpdate Возвращает индекс узла value
Вставляет новый элемент после элемента, заданного индексом index Устанавливает новое количество компонентов списка

Свойство item типа TListItem открывает индексированный доступ к подэлементам конкретного элемента верхнего уровня (допускается только два уровня иерархии элементов). За информацией по этому классу обратитесь к справочной службе Delphi.
THeaderControl - управляющий заголовок
Компонент THeaderControl представляет собой многоколончатый заголовок с регулируемыми размерами колонок (секций). Каждая колонка (секция) заголовка может содержать текст и/или графику. Компонент способен обрабатывать событие onResize, которое возникает при каждом изменении размеров любой секции. В ходе обработки этого события программа обычно соответствующим образом изменяет линейные размеры столбцов таблицы или подобной структуры, с которой связан компонент.
В программе, окно которой показано на компонент THeaderControl используется для управления положением и линейными размерами трех других компонентов. Для реализации программы выполните следующее:

  • Положите на пустую форму компоненты THeaderControl, ТЕ-dit, TMemo и TButton. По умолчанию HeaderControll .Align =alTop - убедитесь в этом и установите свойство, если это не так. Положение и размеры других компонентов не имеют значения.
  • Создайте такие обработчики событий OnCreate для формы Form1, а также OnResize и OnSectionResize для компонента HeaderControll:

const
Delta = 10;// Зазор между границами заголовка и компонентами
procedure TFormI.FormCreate(Sender: TObject);
var
HSection: THeaderSection;
k: Integer;
begin
// Создаем три секции заголовка:
with HeaderControll do
for k := 0 to 2 do
begin
HSection := Sections.Add;
HSection.Text := 'Секция №' + IntToStr(k);
HSection.Width := Forml.Width div 3;
HSection.MinWidth := 3 * Delta;
end;
end;
procedure Tform1.HeaderControllResize(Sender: TObject);
// Устанавливает положение и размеры компонентов
begin
with HeaderControll do
begin
Editl.Left := Delta;
Editl.Top := HeaderControll.Height + 1;
Editl.Width := Sections.Items[0].Width - 2 * Delta;
Memol.Left := Sections.Items[1].Left + Delta;
Memol.Top := HeaderControll.Height + 1;
Memol.Width := Sections.Items[1].Width - 2 * Delta;
Buttonl.Left := Sections.Items[2].Left + Delta;
Buttonl.Top := HeaderControll.Height + 1;
Buttonl.Width := Sections.Items[2].Width - 2 * Delta;
end
end;
procedure TFormI.HeaderControllSectionResize(
HeaderControl: THeaderControl; Section: THeaderSection);
begin
HeaderControllResize(Self)
end;
He забудьте определить в области видимости обработчиков FormCreate И HeaderControllResize глобальную константу Delta.
Для заголовка создается объект класса THeadersections, определяющий секции заголовка. Его свойство
property Items[Index: Integer]: THeaderSection;
открывает доступ к индексированным объектам-секциям класса THeaderSection. Свойства класса THeaderSection:


property Alignment: TAlignment;

Определяет выравнивание текста: taLeftJustify - прижат влево; taCenter - центрирован по горизонтали; taRight Justify - прижат вправо

property AllowClick:.Boolean;

Разрешает/запрещает генерацию события OnSectionClick при щелчке по секции

property Left: Integer;
 

Определяет положение левой границы секции относительно границ компонента (в пикселях)

property MaxWidth: Integer;

Определяет максимальную ширину секции в пикселях

property MinWidth: Integer;

Определяет минимальную ширину секции в пикселях

property Right: Integer;

Определяет положение правой границы секции относительно границ компонента (в пикселях)

THeaderSectionStyle = (hsText, hsOwnerDraw) ;
property Style: THeaderSectionStyle;

Определяет способ формирования секции: hsText - секция содержит только текст и изображается автоматически; hsOwnerDraw - секция прорисовывается программой

Property Width: Integer;

Содержит текущую ширину секции в пикселях

Метод function THeaderSections.Add: THeaderSection;
добавляет очередную секцию заголовка. Некоторые свойства класса THeaderSection:


property AllowClick: Boolean-property DisplayName: String; property Imagelndex: TImageIndex;

Если содержит True, разрешает щелкнуть по секции заголовка как по кнопке. В этом случае управление передается в обработчик события OnSectionClick Имя заголовка секции Указывает индекс изображения из хранилища images, которое будет появляться следом за текстом заголовка

property MaxWidth: Integer; property MinWidth: Integer; type THeaderSectionStyle == (hsText, hsOwnerDraw) ;

Определяет максимальную и минимальную ширину секции Определяет тип секции: hsText - секция содержит только текст; hsOwnerDraw - секция нуждается в программной прорисовке

property Style: THeaderSectionStyle; property Text: String;

Содержит текст секции

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


property Canvas: TCanvas;
 

С помощью этого свойства можно изображать графику в секциях заголовка

property HotTrack: Boolean;

Разрешает/запрещает цвето выделение секции, над которой располагается указатель мыши

property Sections: THeaderSections;

Содержит секции заголовка
 
 

 Для компонента определены следующие события:

TStatusBar - информационная панель


Компонент TStatusBar предназначен для создания панелей состояния, которые обычно располагаются в нижней части основной формы. Компонент может иметь несколько секций, а также кнопку изменения размеров окна, в которое он помещен.
На показан компонент TStatusBar с тремя панелями и кнопкой изменения размеров окна, созданный таким обработчиком события OnCreate для формы Form1(предварительно на пустую форму положите компонент TSatusBar):
procedure TFormI.FormCreate(Sender: TObject);
var
Panel: TStatusPanel;
k: Integer;
begin
with StatusBarl do
for k := 0 to 2 do
begin
Panel := Panels.Add;
Panel.Text := 'Панель №' + IntToStr(k);
Panel.. Width := Forml. Width div 3
end;
end;
С компонентом связывается объект класса TStatusPanels, который определяет панели компонента. Каждая панель относится к классу TstatusPanel и имеет такие свойства:

TToolBar и ToolButton - инструментальная панель и кнопки для нее


Компонент TToolBar представляет собой специальный контейнер для создания инструментальных панелей. Главная отличительная черта TToolBar - его способность гибкого управления дочерними элементами, которые он может группировать, выравнивать по размерам, располагать в несколько рядов. Компонент может манипулировать любыми вставленными в него дочерними элементами, но все его возможности в полной мере проявляются только со специально для него разработанным компонентом TToolButton (инструментальная кнопка). Этот компонент похож на кнопку TSpeedButton, но не ищите его в палитре компонентов - его там нет. Поскольку он разработан специально для TToolBar, вставить его в инструментальную панель можно только после щелчка правой кнопкой на компоненте TToolBar и выборе NewButton или NewSeparator (сепараторы предназначены для функционального выделения на инструментальной панели групп элементов и представляют собой разновидности кнопок TTooiButton). Компонент TTooiButton не имеет свойства, предназначенного для хранения картинки, однако TToolBar умеет использовать контейнер TimageList, чтобы извлечь из него нужную картинку и поместить ее на инструментальную кнопку.
Методику использования TToolBar совместно с TToolButton рассмотрим на примере программы, окно которой показано на Поместите на пустую форму компонент TimageList, щелкните по нему правой кнопкой мыши и выберите продолжение ImageList Editor.

  • Для заполнения контейнера ImageList1 подойдут любые небольшие по размеру изображения. К сожалению, растры из каталога images | BUTTONS[ См . замечание в начале главы. ] рассчитаны на использование в кнопках TSpeedButton и содержат по два изображения каждый -обычное и для запрещенной кнопки. Кнопки TToolButton также могут иметь два или три изображения, но эти изображения необходимо размещать в разных контейнерах rimageList, поэтому использование заготовок из каталога images | buttons в кнопках TToolButton приведет к появлению на них по два изображения одновременно[ Точнее, при вставке двойной картинки редактор компонента спросит у вас, надо ли ее разделять на две отдельные картинки. ]. Чтобы этого не произошло, загрузите пиктограммы из каталога images | icons: щелкните по кнопке Add окна редактора и выберите в этом каталоге файл chemical.
  • Повторите П. 2 для фацлов Chip, Construe, Earth, Finance, Handchek, Shipping, Skyline И Technlgy, после чего закройте редактор ImageList.
  • Поместите на форму компонент TToolBar, в окне Инспектора объектов разыщите свойство images, раскройте список в правой колонке строки images и выберите imageListi. Мы указали компоненту на источник изображений и можем теперь вставлять в него кнопки.
  • Щелкните по ToolBar1 правой кнопкой мыши и выберите New Button.
  • Вставьте еще две кнопки, после чего вставьте разделитель NewSeparator.
  • Разместите на TooiBarl остальные кнопки и сепараторы (см.
  • Если вы захотите, чтобы кнопки имели модный “плоский” вид, установите в свойство Flat компонента ToolBarl значение True.

Свойство Buttons компонента TToolBar позволяет обратиться к каждому дочернему компоненту как к объекту класса TToolButton, имеющему такие свойства:

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

Для компонента определено событие OnResize, возникающее при изменении размеров компонента.
TCoolBar и TCoolBand - инструментальная панель и полосы для нее
Компонент TCoolBar предназначен для создания настраиваемых инструментальных панелей. Для каждого размещаемого на нем элемента TCoolBar создает объект класса TCoolBand (полоса), который может изменять свои размеры и положение в пределах границ компонента.
Следует сразу же заметить, что в отличие от TcontrolBar (страница Additional палитры компонентов) компонент TCoolBar предназначен для примерно таких же задач, но и в версии 2, где он появился впервые, и в версии б он все еще кажется “сырым”, плохо отлаженным.
Центральным свойством компонента является Bands - массив созданных в компоненте полос TCoolBand. Каждая полоса может иметь текст, пиктограмму и произвольный управляющий элемент. В отличие от ттоо1ваг или TControiBar полоса в TCoolBar всегда содержит только один интерфейсный элемент, но ничто не мешает этому элементу быть элементом-контейнером для размещения нескольких компонентов. Размещенный на полосе компонент окружен специальным окном TCoolBar и всегда стремится занять левый верхний угол полосы, при этом остальные размеры полосы изменяются так, чтобы полностью охватить элемент.
Поясним сказанное несложным примером.

  • Поместите на пустую форму компонент TCoolBar - он тотчас же займет верхнюю часть формы, так как по умолчанию его свойства Alignment содержит alTop.
  • Щелкните по компоненту левой кнопкой и выберите Bands Editor (редактор полос).
  • Окно редактора похоже на многие другие используемые в Delphi окна-редакторы: щелкните по кнопке, чтобы вставить в компонент новую полосу.
  • В окне Инспектора объектов можете задать текст для полосы и связанную с ней пиктограмму свойствами соответственно Text и imageindex (предварительно компонент в свойстве images должен уже содержать ссылку на связанный с ним контейнер TimageList). Свойство BitMap используется для заполнения полосы чередующимся узором. Для простоты ограничьтесь указанием текста полоса i и закройте редактор полос.
  • Поместите ниже полосы, но в тот же контейнер CoollBar1 любой управляющий элемент, например, редактор TEdit. Подобно полосе он растянется вдоль верхнего края и будет окружен специальным окном с полосой-кнопкой для реализации механизма Drag&Dock.
  • Вновь раскройте редактор полос, щелкните по ранее установленной полосе и в Инспекторе объектов раскройте список в свойстве Control - в нем окажется только что вставленный в форму компонент TEdit. Щелкните по нему - и он “перепрыгнет” на первую полосу, оставив ранее занимавшую им полосу TCoolBar пустой. Таким способом происходит связывание полосы TCooiBar с компонентом.
  • Освободившуюся полосу можно связать с новым управляющим элементом (например, ComboBox) и т. д.
  • Вид работающей программы показан на

Свойства TCoolBand:

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

property OnChange: TNotifyEvent;

Возникает при изменении свойств Break,
Index или Width у любой полосы

property OnResize: TNotifyEvent;

Возникает при изменении размеров компонента

TPageScroller - панель с прокруткой


Компонент служит контейнером для размещения длинных узких компонентов наподобие TToolBar. Его отличительная черта - наличие небольших стрелок прокрутки по сторонам контейнера в случае, если ширина (высота) дочернего окна превышает соответствующий размер компонента. Чтобы увидеть компонент в действии, щелкните по странице Win32 галереи компонентов Delphi (сам компонент TPageScroller на этой странице обычно не виден[ Для разрешения экрана 800х600. ]), и, чтобы получить к нему доступ, следует щелкнуть по кнопке с небольшой стрелкой в правой части страницы.
По назначению компонент весьма напоминает уже рассмотренный компонент TScrollBox и отличается от него двумя обстоятельствами: компонент не содержит полос прокрутки, а прокрутка осуществляется так, чтобы полностью показать ранее невидимый дочерний компонент.
Свойства компонента:

TComboBoxEx - список выбора с расширенными возможностями
Этот компонент впервые введен в версии 6. По сравнению с TCоmboBох он способен рисовать слева от элемента списка небольшое изображение и выводить элемент с заданным отступом от левого края списка (Кроме того, с каждым элементом можно связать указатель на произвольные данные, размещенные в динамической памяти.
Специфичные свойств а компонента:

 Строки ItemsEx списка выбора определяет класс TComboExItems, имеющий такие свойства:
property Comboltems[const Index: Integer]: TComboExItem; property Items[const Index: Integer] : TListControlItem; default; type TLi'stItemsSortType = (stNone, stData, stText, stBoth); property SortType: TSortType;
Класс TListControlItem имеет три специфичных свойства: caption (String), Data (Pointer) И Imagelndex (integer), с помощью которых описываются текст элемента, а также связанные с ним данные и индекс изображения. Для установки значений этих свойств используются методы SetCaption, SetData И Setlmagelndex класса TListControlItem.
Класс TComboExitem, с помощью которого описываются строки списка в целом, имеет такие свойства:


property Caption: Strings-property Data: Pointed;

Текст элемента выбора Указатель на связанные с элементом данные

property Imagelndex: Timagelndex;

Индекс изображения для невыбранного элемента

property Indent: Integer;

Отступ элемента от левого края списка

property Overlaylmagelndex: Timagelndex;

Индекс изображения-маски

property SelectedlmageIndex: Timagelndex;

Индекс изображения для выбранного элемента

Нетрудно заметить, что свойства Caption, Data и Imagelndex дублируют одоименные свойства класса TListControlltem. Свойство Overlaylmagelndex ссылается на черно-белый растр, который накладывается на изображения Imagelndex И Selectedlmagelndex. Этопозволяет реализовать разного рода анимационные эффекты при выводе изображений.

 

 
На главную | Содержание | < Назад....Вперёд >
С вопросами и предложениями можно обращаться по nicivas@bk.ru. 2013 г. Яндекс.Метрика