Компонент Bevel
Компонент Delphi Bevel (фаска) располагается на вкладке "Additional" Палитры Инструментов. Его назначение в приложении чисто декоративное. Внешний вид полученной фигуры будет зависеть от свойства Shape (рисунок 12).
Рисунок 12 – Примеры использования компонента Bevel
Свойство Shape компонента Bevel может иметь следующие значения:
bsBox -прямоугольник,
bsFrame - рамка,
bsBottomLine - линия снизу,
bsLeftLine - линия слева,
bsRightLine - линия справа,
bsSpacer - область для разметки, во время работы программы не видна,
bsTopLine - линия сверху.
Свойство Style задает внешний вид оформления фаски:
bsLowerd (фаска вогнутая по отношению к поверхности размещения),
bsRaised (фаска выпуклая по отношению к поверхности размещения).
Компонент ScrollBox (Область прокрутки)
Компонент Delphi ScrollBox (Область прокрутки) находиться на странице Additional Палитры компонентов.
При необходимости размещения на форме большого количества элементов, чем то которое она может разметить в видимой области ведет к появлению полосы прокрутки. Но при таком положении могут уйти из видимости важные элементы: поля ввода ввода, командные кнопки и другие элементы управления, которые для удобства работы должны быть всегда в поле зрения.
С помощью компонента ScrollBox мы можем на одной форме расположить области прокрутки в том количестве в каком они нам нужны с необходимы в них объектами. Объекты приложения размещаются в компоненте ScrollBox так же как и на обычной форме. При установленном свойстве AutoScroll в TRUE, полосы прокрутки возникают автоматически по мере их надобности.
Рисунок 13 – Пример использования компонента ScrollBox
Расположим на форме компонент ScrollBox. Свойству AutoScroll присвоим значение FALSE, полосы прокрутки будем настраивать программно (создадим горизонтальную). Разместим кнопку Button так чтобы ее не было видно (на рисунке выступает ее левая сторона) и кнопку Показать - она будет выдвигать эту кнопку в область видимости. Остальные элементы можно разметить просто для вида.
Создадим обработчик FromCreate:
procedure TForm1.FormCreate(Sender: TObject);
begin
with ScrollBox1.HorzScrollBar do
begin
Range := 500;
Position := 0;
Visible := True;
end;
end;
где свойство Range задает максимальную длину полосы прокрутки в пикселах.
Обработчик кнопки «Показать»:
ScrollBox1.ScrollInView(Button1);
Метод ScrollInView прокручивает область ScrollBox1, чтобы показать нам кнопку Button1 полностью.
Компонент CheckListBox
Компонент Delphi CheckListBox находиться на странице Additional Палитры компонентов. Он имеет много общего с компонентом ListBox и основные их свойства совпадают. Главное отличие его состоит в наличии значка для выбора, где можно поставить галочку, слева от элемента списка.
Данный компонент предназначен для множественного выбора элементов, т.е. мы можем выбрать все элементы списка или не одного, как нам необходимо. Поэтому свойства MultiSelect у него нет.
На основе свойства Selected происходит анализ состояния элементов в списке. Это свойство указывает не состояние расположенных слева переключателей, а номер элемента, в текущий момент находящийся в активном состоянии.
А положения переключателей определяют два свойства: Checked и State. Эти два свойства можно представить как индексированные массивы, элементы которых соответствуют индексу строк.
Установить их программно таким образом:
CheckListBox1.Checked[5] := true;
CheckListBox1.State[1] := cbGrayed;
Свойство AllowGrayed, будучи установленным в TRUE, дает возможность воспользоваться третьим промежуточным состоянием.
Рисунок 14 – Пример использования компонента CheckListBox
Разместим на форме компонент CheckListBox, как показано на рисунке. Зададим список Items, воспользовавшись инспектором объектов. Под ним расположим memo, в нем будут выводиться выбранные нами элементы. И еще две кнопки.
Первая с именем Selected будет выводить выделенный синим активный элемент, а вторая - Cheched будет выводить помеченные галочкой элементы.
Обработчики событий этих кнопок будут такие:
для Selected -
procedure TForm1.BitBtn1Click(Sender: TObject);
var
I : integer;
begin
Memo1.Clear;
for I := 0 to CheckListBox1.Items.Count -1 do
begin
if CheckListBox1.selected[i] then
Memo1.Lines.Add(CheckListBox1.Items[i]);
end;
end;
Для Checked –
procedure TForm1.BitBtn2Click(Sender: TObject);
var
I : integer;
begin
Memo1.Clear;
for I := 0 to CheckListBox1.Items.Count -1 do
begin
if CheckListBox1.Checked[i] then
Memo1.Lines.Add(CheckListBox1.Items[i]);
end;
end;
