Задача о телефонном справочнике

ЛАБОРАТОРНАЯ РАБОТА

Ход работы

Загрузите среду визуального программирования 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.

задача о телефонном справочнике - student2.ru Для создания объекта Комбинированный Список воспользуйтесь кнопкой

(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

задача о телефонном справочнике - student2.ru . He сохраняйте эту форму (No). Закройте окно менеджера проекта.

задача о телефонном справочнике - student2.ru

задача о телефонном справочнике - student2.ru

Рис. 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 определяет условия выбора файла.

Ход работы

Наши рекомендации