Задача о телефонном справочнике
ЛАБОРАТОРНАЯ РАБОТА
Ход работы
Загрузите среду визуального программирования Delphi.
Откройте новую форму с многостраничным блокнотом.
File => New => Other => Закладка Forms => Tabbed Pages => Ok.
3. Выделите и удалите клавишей Delete панель (Panel) с кнопками Ok, Cancel и Help в нижней части открытой формы.
Поменяйте заголовок формы с «Tabbed Notebook Dialog» на «Телефонный справочник» и поменяйте стиль границы окна (BorderStyle) на Sizeable (способный менять размер).
Для этого сначала в окне Object Inspector в списке компонентов текущей формы выберите объект PagesDlg (окно формы с многостраничным блокнотом). Только теперь можно поменять его заголовок и стиль.
Выделите (щелкнув внутри страницы мышью) и удалите (Delete) третью страницу блокнота TabSheet3.
Будьте внимательны и не удалите весь многостраничный блокнот – объект PageControl1. В случае необходимости Вы можете отказаться от неправильного действия командой Edit => Undelete.Добавить новую страницу в блокнот можно командой New Page контекстного меню объекта PageControl (блокнот) или TabSheet (страница блокнота).
//Добавить страницу
Замените заголовки (свойство Caption) первой и второй страниц блокнота (объектов TabSheetl и TabSheet2) на «Редактирование и поиск записей» и «Список всех записей» соответственно.
7. Заполните обе страницы формы визуальными объектам» так, как это показано на рис. 1 и рис. 2.
Для создания объекта Комбинированный Список воспользуйтесь кнопкой
(ComboBox) на закладке Standard палитры компонентов. Кнопки «Предыдущий» – «Следующий» называются Buttom1 – Buttom4 соответственно. Очистите поля свойства Техt объектов Edit1 – Edit5 и ComboBox1. Установите свойство Style объекта ComboBoxl в csDropDownList (выпадающий список). Задайте такие значения свойств объекта StringGrid1:
Свойство | Значения |
ColCount | |
FixedCols | |
RowCount | |
FixedRows | |
Options => goEditing | True |
Запрограммируйте команду «О программе» главного меню окна «Телефонный справочник» так, чтобы в момент ее выполнения на экране появлялось только что спроектированное окно.
В заготовку процедуры обработки этой команды введите строку для вызова метода Show (показать) объекта AboutBox:
AboutBox.Show
Запрограммируйте кнопку Ok окна «О программе».
Для этого возвратитесь к форме «О программе» и в процедуре OKButtonChck кнопки Ok введите команду закрытия активной формы:
Close
Замечание. Окно формы «О программе» находится под другими окнами Delphi.
Удалите ненужную пустую форму Form1 из проекта.
Для этого вызовите менеджер проекта командой View => Project Manager (см. рис. 4). Выделите строку со значением Unit1 и нажмите клавишу Remove
. He сохраняйте эту форму (No). Закройте окно менеджера проекта.
Рис. 4
15. Запрограммируйте команду Файл => Выход главной формы.
Type
TPagesDlg = class(TForm) //Эта запись уже есть в заготовке модуля
{Необходимо вставить}.
procedure NewComboBox;
В разделimplementation добавьте описание этой процедуры:
procedure TPagesDlg.NewComboBox;
var i,j:integer;
begin
//Запоминаем активную позицию комбинированного списка
//Очищаем комбинированный список
ComboBox1.Clear;
//Для всех N (переменная получена в процедуре для записи в файл) записей
//В обновленный комбинированный список добавляем
//все фамилии из первого столбца таблицы. Используем СвойствоItems метод Add для ComboBox1
//Переходим на позицию j в ComboBox1
end;
23. Сохраните работу, запустите программу, заполните таблицу данными и убедитесь в том, что программа правильно записывает на диск и считывает с диска файлы телефонных справочников.
24. Запрограммируйте команду главного меню «Сохранить изменения в списке записей».
//Сохранить изменения в списке записей
procedure TPagesDlg.N10Click(Sender: TObject);
var i:integer;
begin
//Определяем номер активной записи в ComboBox1 (свойство ItemIndex)
//Если активна первая страница
//то вносим изменения во вторую
иначе вызываем NewEdit(ComboBox1);
//В обоих случаях обновляем комбинированный список
NewComboBox;
end;
ЛАБОРАТОРНАЯ РАБОТА
ЗАДАЧА О ТЕЛЕФОННОМ СПРАВОЧНИКЕ
Новые объекты: многостраничный блокнот, комбинированный список, главное меню. Создание новых окон и стандартных диалогов. Работа с файлами записей в Object Pascal.
Цель работы. Создать программу для работы с базой данных – телефонным справочником, сформированным в виде файла записей. В каждой записи определены поля: фамилия и имя (строки длиной по 20 символов каждая), адрес и номер телефона (строки длиной 100 и 15 символов соответственно). Необходимо реализовать следующие операции: создание и удаление записи, сохранение и считывание файла записей с диска, редактирование, поиск и сортировку данных в алфавитном порядке, просмотр записей и навигацию по базе.
Ознакомиться с новыми объектами: главное меню (MainMenu), многостраничным блокнотом(PageControl), страницей блокнота(TabSheet), комбинированным списком(ComboBox), диалоговым окном(AboutBox), стандартными диалогами открытия и сохранение файлов (OpenDialog и SaveDialog).
Теоретические сведения. С помощью объекта MainMenuсоздают главное меню программы. Вот некоторые свойства:
Свойство | Описание свойства | Примеры значений |
Items | Команды меню | Комплексное свойство задается в диалоговом окне |
Captions | Свойство команды. Надпись раздела | Заголовок |
Break | Свойство команды. Разбивка меню в горизонтальном направлении (используется для длинных меню) | mbNone (без разбивки), mbBarBreak (вводится новый столбец разделов, отделенный вертикальной полосой), mbBreak (вводится новый столбец разделов, отделенный пробелами) |
Checked | Свойство команды. Отображение в разделе меню маркера флажка | False (не отображается), True (отображается) |
ShortCut | Свойство команды. Комбинация «горячих» клавиш для вызова команды меню | Ctrl+A, Ctrl+Alt+G |
Многостраничный блокнот (PageControl) находится на особом виде формы Tabbed Pages (объект PagesDlg, заголовок "Tabbed. Notebook Dialog"). Форму создают командами File => New.. =>Other=> Закладка Forms => Tabbed Pages => Ok. После ее создания ненужную форму "Form1" в случае необходимости можно удалить с помощью окна менеджера проекта (Project Manager). Вызов окна менеджера проекта осуществляется командами View => Project Manager. В данной работе активизацию объектов PageControl и PagesDlg можно осуществлять с помощью инспектора объектов. Свойства объекта PagesDlg совпадают со свойствами обычной формы Form. Рассмотрим новые свойства блокнота PageControl.
Свойство | Описание свойства | Примеры значений |
ActivePage | Имя активной страницы | TabSheet7 |
MultiLine | Возможность размещать закладки страниц в несколько строк | True (закладки в несколько строк). False (за кладки в одну строку) |
Pages | Доступ к странице по индексу | Первая страница имеет индекс 0 (только для чтения) |
Свойства отдельной страницы блокнота (объектаTabSheet)аналогичны описанным в предыдущих разделах. Страница имеет следующие основные свойства
Свойство | Описание свойства | Примеры значений |
PageIndex | Индекс страницы, по которому можно ссылаться на страницу | |
ImageIndex | Индекс изображения, которое может появляться на ярлычке |
ОбъектComboBox предназначен для создания выпадающего списка. Его новые свойства такие:
Свойство | Описание свойства | Примеры значений |
DropDownCount | Количество строк в выпадающем списке, которые видимы без использования полос прокручивания | 7, 3 |
Sorted | Сортировка списка по алфавиту | True (список сортируется), False (не сортируется) |
Style | Стиль оформления и использование списка | csOwnerDrawVariable (заданный программистом), csDropDown (стандартный: выпадающий список со строками одинаковой высоты и с окном редактирования), csDropDownList (выпадающий список со строками одинаковой высоты, без окна редактирования) |
ItemIndex | Индекс выбранного пользователем элемента списка. Доступен только во временя выполнения | По умолчанию –1 (ни одна строка не выбрана) |
Стандартные диалоги открытия (объектOpenDialog,страница Dialogs) и сохранения файлов (объектSaveDialog,страница Dialogs), – это невидимые на форме объекты, предназначенные для создания стандартных в Windows 9х окон: "Open file" и "Save File as" – в момент вызова их из программного кода проекта командой OpenDialogl. Execute или SaveDialogl. Execute. Основной метод, которым производится обращение к диалогу, – Execute. Эта функция открывает диалоговое окно и если, пользователь произвел в нем какой-то выбор возвращает значение true. При этом в свойствах компонента-диалога запоминается выбор пользователя, который можно прочитать и использовать в дальнейших операциях. если же пользователь в диалоге нажал кнопку ОТМЕНА или клавишу Esc, то функция Execute возвращает значение false. Пожтому стандартное обращение к диалогу имеет вид:
if имя_компонента_диалога.Execute then
операторы_использующие_выбор_пользователя;
Имя выбранного файла возвращается в программу свойством FileName этих объектов.
Типы искомых файлов, появляющиеся в диалоге в выпадающем списке Тип Файла, задаются свойством Filter. В процессе проектирования это свойство проще всего задать с помощью редактора фильтров, который вызывается нажатием кнопки с многоточием около имени этого свойства в Инспекторе Объектов. При этом открывается окно редактора. В левой панели Filter Name вы записываете тот текст, который увидит пользователь в выпадающем списке Тип файла. В правой панели Filter записывают разделенные точками с запятой шаблоны фильтра (файлы данных (*.dat) | *.dat).
Свойство Title позволяет вам задать заголовок диалогового окна. Например, вместо Сохранение файла мы хотим написать Укажите имя файла, который вы хотите сохранить. Cвойство Options определяет условия выбора файла.
Ход работы