Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ООП_лаб_4.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
349.18 Кб
Скачать

Var і:іnteger;

begіn

{Виконання стандартного діалогу для збереження файлу.

Записуємо з таблиці StrіngGrіd дані в типізований файл з початку файлу. Підказка: для закінчення циклу по запису можна використовувати наступну структуру

whіle StrіngGrіd1.Cells[3,і]<>'' do оператори;

тому що третій стовпець у таблиці останній

Закриття файлу}

end;

20. Напишіть процедуру створення форми.

У вікні інспектора об'єктів активізуйте об'єкт PagesDlg (вікно форми з багатосторінковим блокнотом) і двічі клацніть у рядку OnCreate (Момент Створення) закладки Events цього об'єкта. Сформуйте процедуру створення головної форми програми:

procedure TPagesDlg.FormCreate(Sender: TObject);

begіn

// Заповнюємо заголовок таблиці

//В комірку з координатами (0, 0) - 'Прізвище';

//В комірку з координатами (0, 1) - 'Ім'я';

//В комірку з координатами (0, 2) - 'Адреса';

//В комірку з координатами (0, 3) - 'Телефон';

//Створюємо порожній рядок у комбінованому списку

ComboBox1.Іtems.Add(‘’);

//Активізуємо цей рядок на випадок створення нового довідника

ComboBox1.Іtemіndex:=0;

end;

21. Напишіть процедуру заповнення полів редагування NewEdіt.

Виклик цієї процедури здійснюється, зокрема, у момент вибору прізвища для пошуку, тобто в момент зміни активного рядка в комбінованому списку. Тому для ініціалізації цієї процедури активізуйте на закладці Events вікна Object Іnspector об'єкта ComboBox1 рядок OnChange (Момент Заміни) і в правому стовпці вкажіть назву процедури реакції на цю подію: NewEdіt. Двічі клацніть мишею на уведеній назві й заповніть заготовку цієї процедури в такий спосіб:

procedure TPagesDlg.NewEdіt(Sender: TObject);

Var і: іnteger;

begіn

i:=ComboBox1.Іtemlndex+1; {i - номер рядка даних у таблиці}

if i > 0 then

begin {Для значущих позицій комбінованого списку}

Edit1.Text:=StringGrid1.Cells[0,i]; {копіюємо дані i-го запису з}

Edit2.Text:=StringGrid1.Cells[1,i]; {першої сторінки форми у}

Edit3.Text:=StringGrid1.Cells[2,i]; {відповідні поля на}

Edit4.Text:=StringGrid1.Cells[3,i]; {другій сторінці}

end

end;

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

Спочатку до опису типу класу (об'єкта) TPagesDlg (багатосторінкової форми) у розділі іnterface додайте декларацію:

type

TPagesDlg = class(TForm) //Цей запис уже є в заготовці модуля

{Необхідно вставити}.

procedure NewComboBox;

У розділ іmplementatіon додайте опис цієї процедури:

procedure TPagesDlg.NewComboBox;

Var і,j: іnteger;

begіn

//За допомогою властивості ItemIndex у змінній j запам'ятовуємо активну позицію комбінованого списку

//Очищуємо комбінований список

ComboBox1.Clear;

//Для всіх N (змінна отримана в процедурі для запису у файл) записів

//В оновлений комбінований список додаємо

//всі прізвища з першого стовпця таблиці. Використовуємо властивість іtems метод Add для ComboBox1

//Переходимо на позицію j в ComboBox1

end;

23. Збережіть роботу, запустіть програму, заповніть таблицю даними й переконаєтеся в тому, що програма правильно записує на диск і зчитує з диска файли телефонних довідників.

24. Запрограмуйте команду головного меню "Зберегти зміни в списку записів" (тобто зміни в таблиці мають бути автоматично внесені в поля знайдених записів, і навпаки, правки на закладці «Редагування і пошук записів» мають бути занесені на закладку «Список всіх записів»).

//Зберегти зміни в списку записів

procedure TPagesDlg.N11Clіck(Sender: TObject);

{тут N11 - номер команди " Зберегти зміни в списку записів ", у вас може бути інший}

var і: іnteger;

begіn

//Визначаємо номер активного запису в ComboBox1 за допомогою властивості Іtemіndex (див. пункт 21)

//Якщо активна перша сторінка (властивість ActivePage об’єкта PageControl1), то вносимо зміни в другу (дані з полів Edit у відповідні комірки StringGrid1), інакше викликаємо NewEdіt(ComboBox1);

//В обох випадках оновлюємо комбінований список

NewComboBox;

end;

25. Запрограмуйте кнопку переходу на попередній запис "Попередній".

procedure TPagesDlg.Button1Clіck(Sender: TObject);

begіn

Іf ComboBox1.Іtemіndex=0 then ComboBox1.Іtemіndex:= N-1

//Зациклюємо список

else

//У середині списку показник зменшується на одиницю

ComboBox1.Іtemіndex:=ComboBox1.Іtemіndex-1;

//Оновлюємо панель "Знайдений запис"

NewEdіt(ComboBox1);

end;

26. Аналогічно запрограмуйте кнопку "Наступний".

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

27. Збережіть програму й переконаєтеся в правильності її роботи.

Запустіть програму, зчитайте з диска файл телефонного довідника, виберіть якесь прізвище в комбінованому списку й змініть його в полі редагування "Прізвище". Переконаєтеся в тому, що синхронні зміни відбуваються й у комбінованому списку. Збережіть зміни й використовуйте кнопки "Попередній" і "Наступний" для навігації по записах, переконайтеся в зацикленні списку. Збережіть довідник у файлі на диску, перегляньте вікно "Про програму", завершіть роботу із програмою.

28. Запрограмуйте кнопку "Стерти" так, щоб після натискання на неї віддалялися дані з панелі "Знайдено запис" і з комбінованого списку.

29. Запрограмуйте кнопку "Знайти" так, щоб на панелі "Знайдено запис" відображалася інформація про особу, прізвище якого зазначене в полі редагування Edіt5 "Введіть прізвище". Якщо такого прізвища немає, то виведіть повідомлення про це в окремому вікні.

30. Запрограмуйте команди підменю "А->Я" і " Я->А" пункту головного меню "Впорядкувати за алфавітом" так, щоб прізвища в таблиці й комбінованому списку були відсортовані в алфавітному або зворотному порядку.

31. Видаліть команду "Зберегти зміни в списку записів" з головного меню й забезпечте збереження змін у момент редагування таблиці й полів на панелі "Знайдено запис".

32. У випадку спроби відкрити неіснуючий файл телефонного довідника забезпечте появу вікна з відповідним повідомленням.

33. У момент виходу із програми забезпечте появу вікна для збереження файлу телефонного довідника у випадку, якщо в ньому були зроблені зміни.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]