Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Сохраните работу и запустите проект на выполнение.

Поиск

Убедитесь в правильности работы закладок, комбинированного списка, наличия возможности редактировать поля таблицы и перемещаться по ним с помощью полосы прокручивания. Вызовите окно «О программе» и закройте его клавишей Ok. Закончите работу командой Файл => Выход.

 

17. Опишите глобальные переменные и типы данных программы: тип записи телефонного справочника (info), файл записей (F), переменную типа info (г) и целую переменную количества записей (N).

Для этого перед разделом реализации implementation добавьте такие команды:

Type info=record //Тип записи

familia,imja:string[20];

adres:string[100];

tel:string[15];

end;

var

PagesDlg: TPagesDlg; //Эта строка уже есть в заготовке модуля

f:file of info; //Файл записей

r:info; //Одна запись

n:integer; //Количество записей

18. Добавьте на форму два объекта – стандартные диалоги Windows для открытия и сохранения файлов.

Кнопки (OpenDialog) и (SaveDialog) находятся на закладке Dialogs панели компонентов Delphi. На рис. 1 эти объекты расположены в правом верхнем углу формы.

Запрограммируйте процедуры открытия и сохранения файлов телефонного справочника (команды главного меню «Прочитать из файла» и «Записать в файл»).

//Прочитать из файла

procedure TPagesDlg.N2Click(Sender: TObject);

{Здесь N2 – номер команды «Прочитать из файла», у вас может быть другой}

begin

{Выполнение стандартного диалога для открытия файла.

Читаем с начала файла

Считываем все записи из файла и переносим их в StringGrid

Используем переменную целого типа для подсчета количества записей в файле (номера записи) и соответственно номера столбца в таблице}

//Фамилия - в первый столбец таблицы

//Имя - во второй столбец таблицы

//Адрес - в третий столбец таблицы

// Телефон - в четвертый столбец таблицы

//Закрываем файл

//Описанная ниже процедура заполняет поля редактирования

//первой страницы формы - "Редактирование и поиск записей"

NewEdit(ComboBox1);

//Описанная ниже процедура заполняет комбинированный список

//первой страницы формы - "Редактирование и поиск записей"

NewComboBox;

end;

 

//Записать в файл

procedure TPagesDlg.N3Click(Sender: TObject);

var i:integer;

begin

{Выполнение стандартного диалога для сохранения файла.

Записываем из таблицы StringGrid данные в типизированный файлс начала файла. Подсказка: для окончания цикла по записи можно использовать следующую структуру

while StringGrid1.Cells[3,i]<>'' do операторы;

т.к.третий столбец в таблице последний

Закрытие файла.}

end;

Напишите процедуру создания формы.

В окне инспектора объектов активизируйте объект PagesDlg (окно формы с многостраничным блокнотом) и дважды щелкните в строке OnCreate (Момент Создания) закладки Events этого объекта. Сформируйте процедуру создания главной формы программы:

 

procedure TPagesDlg.FormCreate(Sender: TObject);

begin

// Заполняем заголовок таблицы

//В ячейку с координатами (0, 0) – 'Фамилия';

//В ячейку с координатами (0, 1) – 'Имя';

//В ячейку с координатами (0, 2) – 'Адрес';

//В ячейку с координатами (0, 3) – 'Телефон';

//Создаем пустую строку в комбинированном списке

ComboBox1.Items.Add('');

//Активизируем эту строку на случай создания нового справочника

ComboBox1.ItemIndex:=0;

end;

 

Напишите процедуру заполнения полей редактирования NewEdit.

Вызов этой процедуры осуществляется, в частности, в момент выбора фамилии для поиска, то есть в момент смены активной строки в комбинированном списке. Поэтому для инициализации заготовки этой процедуры активизируйте на закладке Events окна Object Inspector объекта ComboBox1 строку OnChange (Момент Замены) и в правом столбце укажите название процедуры реакции на это событие: NewEdit. Дважды щелкните мышью на введенном названии и заполните заготовку этой процедуры следующим образом:

 

procedure TPagesDlg.NewEdit(Sender: TObject);

var i:integer;

begin

//i - номер строки данных в таблице привести в соответствие номеру строки в ComboBox1 используя свойство ItemIndex

//Для значащих позиций комбинированного списка

//копируем данные i-ой записи со

//второй страницы формы в

//соответствующие поля на первой странице

end;

 

22. Напишите процедуру заполнения комбинированного списка NewComboBox.

Сначала к описанию типа класса (объекта) TPagesDIg (многостраничной формы) в разделе interface добавьте декларацию:

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;

 



Поделиться:


Последнее изменение этой страницы: 2016-04-26; просмотров: 354; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.142.210.173 (0.007 с.)