Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_rab5_D.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
138.24 Кб
Скачать
  1. Напишіть процедуру створення форми.

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

Сформуйте процедуру створення головної форми програми:

procedure TpagesDlg.FormCreate(Sender: TObject);

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

StringGrid1.cells[0, 0] := 'Прізвище';

StringGrid1.cells[l, 0] := 'Ім'я';

StringGrid1.cells[2, 0] := 'Адреса';

StringGrid1.cells[3, 0] := 'Телефон';

ComboBox1. Items .Add("); { Створюємо порожній рядок в комбінованому списку}

ComboBox1.ItemIndex:=0; {Активізуємо цей рядок на випадок створення нового довідника}

end;

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

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

procedure TPagesDlg.NewEdit(Sender: Tobject);

var i : integer;

begin

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

if i > 0 then

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

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

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

Edit3.Text := StringGridl.Cells[2, i]; {відповідні поля на другій сторінці}

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

end

end;

  1. Напишіть процедуру заповнення комбінованого списку 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 записів...}

{ У оновлений комбінований список додаємо всі прізвища з першого стовпця таблиці}

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

ComboBox1.ItemIndex:= j; { Переходємо на позицію j}

end;

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

  2. Запрограмуйте команду головного меню «Зберегти зміни в списку записів».

procedure TPagesDlg.N6Click(Sender: Tobject); {Тут N6 номер команди. «Записати у файл», у {Вас може бути іншій}

var i : integer;

begin

i := ComboBox1.ItemIndex + 1; {Визначуємо номер активного запису}

if PageControl1.ActivePage=TabSheet2 then

begin {Якщо активна друга сторінка}

StringGrid1.Cells[0, i ] := Edit1.Text; {то вносимо зміни до першої }

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

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

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

end

else NewEdit(ComboBox1); { Інакше — вносимо зміни до другої сторінки}

NewComboBox; { У обох випадках оновлюємо комбінований список}

end;

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