Практическая работа. Создадим электронную записную книжку
Создадим электронную записную книжку. Совместно с набором данных будем использовать элемент управления с закладками TabControl
Компонент TabCotntrol (п.к. Win32). Представляет собой контейнер с закладками.
Вид записной книжки с распечаткой фамилий на букву "А" показан на рисунке:
Создайте таблицу Notebook.db со списком телефонов друзей и знакомых (поля: FIO, Phone, Note (примечания)) в программе Database Desktop. Сохраните созданную таблицу в рабочей папке Baza. Заполните данными (20 записей).
Расположите на форме компонент TabControl. В свойстве Tabs этого компонента в столбик перечислите все буквы алфавита (кроме "Й", "Ь", "Ъ"). В свойстве MultiLine установите значение true, чтобы закладки размещались в несколько рядов. Свойству TabPosition присвойте значение alTop, свойству HotTrack – true.
На форме разместите три компонента для работы с БД (Table1, DataSource1, DBGrid1). Таблицу Notebook.db свяжите с НД Table1. Список владельцев телефонов отображается в компоненте DBGrid1. Пользователь может отобразить все фамилии или вывести фамилии, начинающиеся с определенной буквы.
Для управления отбором записей используется фильтрация. Разместите на форме компонент CheckBox1 и присвойте ему заголовок «Показывать все записи». С помощью этого компонента будет активизироваться и деактивизироваться фильтр. По умолчанию флажок установлен, при этом фильтр выключен, и отображаются все фамилии. Если флажок CheckBox1 сброшен, то выполняется фильтрация. Записи выбираются на основании первой буквы фамилии. Букву можно выбирать с помощью закладок компонента TabControl1.
Напишите следующие обработчики событий для данной формы:
procedure TForm1.FormCreate(Sender: TObject);
Begin
DBGrid1.Align:=alClient;
Table1.FilterOptions:=[foCaseInsensitive];
CheckBox1.Checked:=true;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
Begin
if CheckBox1.Checked then
Table1.Filtered:=false
Else
Table1.Filtered:=true;
end;
Событие OnChange возникает при выборе новой закладки и позволяет управлять содержимым окна компонента.
procedure TForm1.TabControl1Change(Sender: TObject);
Begin
Table1.Filter:='FIO= '''+tabcontrol1.Tabs[tabcontrol1.TabIndex]+'*''';
end;
Дата добавления: 2015-05-16; просмотров: 656;