Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа2.doc
Скачиваний:
6
Добавлен:
06.11.2018
Размер:
196.1 Кб
Скачать
    1. Вкладки PageControl

Для диалога со вкладками используется компонент PageControl со вкладки Win32:

Разместите его на форме. Для добавления вкладок на наш компонент просто щелкните на нем правой кнопкой мыши из контекстного меню и выберите New Page. Таким способом можно добавить требуемое число вкладок. Удаляются они аналогично - из контекстного меню нужной вкладки выбираем Delete Page (для того, чтобы выделить нужную вкладку, просто щелкните на ней (но не на ее ярлычке - в этом случае выделится весь PageControl)).

После того, как вы добавите пару-тройку вкладок, они появятся в окне Object TreeView, так что для задания свойств конкретной вкладки просто щелкните на соответствующей строке в окне Object TreeView:

Теперь можно размещать на вкладках разные элементы управления (как и на обычной форме). Добираться до размещенных элементов управления можно, например, так:

procedure TForm1.Button1Click(Sender: TObject);

begin

CheckBox1.Enabled:=false;

end;

Обратите внимание, что, несмотря на то, что Checkbox расположен на вкладке (и если вы попытаетесь перетащить его мышкой за ее пределы, то у вас ничего не получится), добраться до него мы можем через форму (в данном примере, по нажатию на кнопку). Если вы расположите на второй вкладке другой Checkbox, то он получит имя CheckBox2, а не CheckBox1.

Посмотрим теперь, как могут располагаться вкладки, если их слишком много, чтобы умещаться в один ряд. Если свойство MultiLine для нашего компонента PageControl установлено в true, то они располагаются в несколько рядов:

А если MultiLine установлено в False (по умолчанию), то в один ряд, причем справа появляются две кнопки для перемещения (совсем как в палитре компонент Delphi):

Свойство TabIndex определяет активную в данный момент вкладку (нумерация с нуля). Это свойство доступно только для чтения.

Из полезных свойств отметим также TabPosition. Возможные значения для него - tpTop, tpBottom, tpLeft, tpRight. При этих значениях ярлыки к вкладкам располагаются наверху, внизу, слева и справа соответственно). По умолчанию это свойство равно tpTop.

Для получения количества вкладок служит свойство PageCount объекта PageControl. Оно, естественно, доступно только для чтения.

Из модных нововведений интерфейса отметим также свойство HotTrack. Если его установить в True, то при наведении мышки заголовок вкладки будет подсвечиваться.

Вкладки можно добавлять во время выполнения программы. Вот пример такого кода (он выполняется при нажатии кнопки):

procedure TForm1.Button1Click(Sender: TObject);

var

tab : TTabSheet; //Заводим новую вкладку

begin

tab:=TTabSheet.Create(Form1); //Задаем родителя

tab.PageControl:=PageControl1;

tab.Caption:='New'; //Задаем заголовок

end;

При щелчке на кнопке Button1 на нашей форме появится новая вкладка с заголовком New.

    1. Списки ListBox и ComboBox

Экземпляр класса TListBox представляет из себя список. Этот компонент расположен на вкладке Standard Палитры компонентов:

Рассмотрим его основные свойства.

Наверное, самое основное свойство для списка - это Items. Тип у него - TStrings. Именно в нем и хранятся элементы нашего списка. Для заполнения списка нажмите на кнопку с многоточием рядом с названием этого свойство в Инспекторе объектов:

Появится окно String List Editor, в котором можно печатать элементы нашего списка (разделяя их нажатием клавиши Enter):

С элементами списка можно работать и программно. Для этого используем это же самое свойство Items. Например, для добавления элемента в наш список надо написать что-то вроде

ListBox1.Items.Add('Новый элемент');

для очистки всего списка пишем

ListBox1.Items.Clear;

Для удаления элемента из списка используется следующая конструкция:

ListBox1.Items.Delete(1);

Параметр в скобках (у нас это единица) - это номер удаляемого элемента. В нашем примере фактически удаляется второй элемент списка, так как их нумерация начинается с нуля.

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

ListBox1.Items.Insert(2,'Roman');

В данном примере новый элемент ‘Roman’ вставится на второе место (с точки зрения пользователя это будет третье место, так как их нумерация начинается с нуля).

Свойство ItemIndex служит для определения выделенного в списке элемента (оно доступно как для чтения, так и для записи). Элементы списка нумеруются с нуля, так что если выделен, например, третий элемент, то значение этого свойства равно 2. Если ни один элемент списка не выделен, то значение свойства ItemIndex равно -1. Вот так, например, можно снять выделение с элемента списка:

ListBox1.ItemIndex:=-1;

Свойство списка MultiSelect определяет, можно ли выделять несколько элементов списка одновременно. Если оно равно False (значение по умолчанию), то выделять несколько элементов нельзя, а если true, то можно:

Свойство Sorted определяет, сортируются ли элементы списка. По умолчанию оно равно False, и если установить его в True, то список будет отсортирован и новые элементы будут вставляться не в конец, а в соответствующее сортировке место.

ComboBox представляет из себя комбинацию Edit и ListBox. Иконка для него находится на панели Standard:

У него, как и у списка (компонент TListBox) основное свойство - Items. Его тип - TStrings. Оно определяет список строк нашего компонента. Добавление элементов, их удаление, очистка всего содержимого combobox'а происходит точно так же, как и для компонента TListBox, так что если забыли, то посмотрите в предыдущем уроке.

Выбранный пользователем элемент Combobox'а можно определить с помощью свойства Text, а его номер - с помощью свойства ItemIndex (нумерация, как и у ListBox'а, начинается с нуля).

У ComboBox'а можно выбрать один из предопределенных стилей, которые определяются свойством Style. Значение стиля по умолчанию - csDropDown. При таком стиле вы можете выбирать значение из списка нашего Combobox'а и впечатывать его сами. Еще одно возможное значение - csDropDownList. В этом случае пользователь сможет выбирать только те значения, которые есть в списке, другое же значение он впечатать в Combobox не сможет. Это два самых распространенных значения для стиля. Иногда используется стиль csSimple. В этом случае наш Combobox будет выглядеть приблизительно так (т. е. выпадающий список превратится в нечто, напоминающее ListBox):

У ComboBox'а, как и у ListBox'а есть свойство Sorted логического типа. И работает оно точно также.