Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по лабораторным Delphi.doc
Скачиваний:
42
Добавлен:
13.02.2016
Размер:
610.3 Кб
Скачать

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

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

type

{Эта запись уже есть в заготовке модуля}

TPagesDlg = class(TForm)

{Необходимо вставить}

procedure NewComboBox;

В раздел implementation добавьте описание этой процедуры:

Procedure TPagesDlg.NewComboBox;

var i, j : integer;

begin {Запоминаем активную позицию комбинированного списка }

j :=ComboBox1.ItemIndex; {Очищаем комбинированный список}

ComboBox1.Clear;

for i:=1 to N do {Для всех N запись I..}

{В обновленный комбинированный список добавляем все фамилии из первого столбца таблицы}

ComboBox1.Items.Add(StringGrid1.Cells[0, i]);

{Переходим на позицию j}

ComboBox1.ItemIndex :=j; end;

23. Сохраните работу, запустите программу, заполните таблицу данными и убедитесь в том, что программа правильно записывает на диск и считывает с диска файлы телефонных справочников.

24. Запрограммируйте команду главного меню «Сохранить изменения в списке записей».

procedureTPagesDlg.N6Click(Sender: Tobject);

{Здесь N6 - номер команды «Записать в файл», у Вас может быть другой)

var i : integer;

begin

{Определяем номер активной записи}

i :=ComboBox1.ItemIndex+1;

if PageControl1.ActivePage=TabSheet2 then

begin {Если активная вторая страницa}

StringGrid1.Cells[0, i] :=Editl.Text;

{то вносим изменения в первую }

StringGrid1.Cells[l, i] :=Edit2.Text;

StringGridl. Cells[2, i] := Edit3.Text;

StringGrid1.Cells[3, i] := Edit4.Text; end;

{Иначе - вносим изменения во вторую страницу}

else NewEdit(ComboBox1);

{В обоих случаях обновляем комбинированный список}

NewComboBox; end;

25. Запрограммируйте кнопку перехода на предыдущую запись «Предыдущий».

procedure TpagesDlg.ButtonlClick(Sender; Tobject);

begin

if ComboBox1.Itemindex = 0 then {Зацикливаем список}

ComboBox1.Itemindex :=N-1 else

{В середине списка показатель уменьшается на единицу}

ComboBox1.Itemindex := ComboBox1.Itemindex -1; {Обновляем панель «Найдена запись»}

NewEdit(ComboBox1); end;

26. Аналогично запрограммируйте кнопку «Следующий».

Программный код созданной процедуры запишите в отчет.

27. Сохраните программу и убедитесь в правильности ее работы.

Запустите программу, считайте с диска файл телефонного справочника, выберите какую-то фамилию в комбинированном списке и поменяйте ее в поле редактирования «Фамилия». Убедитесь в том, что синхронные изменения происходят и в комбинированном списке. Сохраните изменения и используйте кнопки «Предыдущий» и «Следующий» для навигации по записям, убедитесь в зацикливании списка. Удалите одну запись кнопкой «Стереть», сохраните изменения и перейдите на первую страницу. Отредактируйте данные в таблице, сохраните справочник в файле на диске, просмотрите окно «О программе», закончите работу с программой.

Задания:

1. Запрограммируйте кнопку «Удалить» так, чтобы после нажатия на нее удалялись данные из панели «Найдена запись» и из комбинированного списка.

2. Запрограммируйте кнопку «Найти» так, чтобы на панели «Найдена запись» отображалась информация о лице, фамилия которого указана в поле редактирования Edit5 «Введите фамилию». Если такой фамилии нет, то выведите сообщения об этом в отдельном окне.

3. Запрограммируйте команды подменю «А→Я» и «Я→А» пункта главного меню «Сортировать» так, чтобы фамилии в таблице и комбинированном списке были отсортированы в алфавитном или обратном порядке.

4. Удалите команду «Сохранить изменения в списке записей» из главного меню и обеспечьте сохранение изменений в момент редактирования таблицы и полей на панели «Найдена запись».

5. В случае попытки открыть несуществующий файл телефонного справочника обеспечьте появление окна с соответствующим сообщением.

6. В момент выхода из программы обеспечьте появление окна для сохранения файла телефонного справочника в случае, если в нем были сделаны изменения.

Рис.6 Рис.7

Рис. 8

65