Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторна робота 5.doc
Скачиваний:
1
Добавлен:
30.11.2018
Размер:
90.11 Кб
Скачать

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

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

void __fastcall TPagesDlg::FormCreate(TObject *Sender)

{

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

StringGrid1->Cells[0][0] = "Прізвище";

StringGrid1->Cells[1][0] = "Ім’я";

StringGrid1->Cells[2][0] = "Адрес";

StringGrid1->Cells[3][0] = "Телефон";

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

ComboBox1->Items->Add("");

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

ComboBox1->ItemIndex=0;

}

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

Виклик цього методу здійснюється, зокрема, в момент вибору прізвища для пошуку, тобто в момент зміни активного рядка в комбінованому списку. Тому для ініціалізації заготовки цього методу в файлі заголовків TABPGDLG.h оголосіть прототип методу: void __fastcall NewEdit(TObject *Sender);

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

void __fastcall TPagesDlg::NewEdit(TObject *Sender)

{

//і – номер рядка даних в таблиці

int i = ComboBox1->ItemIndex + 1;

if (i > 0)

{

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

Edit1->Text = StringGrid1->Cells[0][i]; //копіюємо дані і-го запису з

Edit2->Text = StringGrid1->Cells[1][i]; //правої сторінки форми в

Edit3->Text = StringGrid1->Cells[2][i]; //відповідні поля на другій сторінці

Edit4->Text = StringGrid1->Cells[3][i];

}

}

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

Спочатку до опису типу класу (об’єкта) TPagesDlg (багато сторінкової форми) в розділі public добавте оголошення методу:

void __fastcall NewComboBox(void);

А у виконавчому файлі добавте опис цієї процедури:

void __fastcall TPagesDlg::NewComboBox(void)

{

int j = ComboBox1->ItemIndex; //Запам’ятовуємо активну позицію type

ComboBox1->Clear(); //Очищаємо комбінований список

for(int i = 1;i<N;i++)//Для всіх N записів...

ComboBox1->Items->Add(StringGrid1->Cells[0][i]);

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

ComboBox1->ItemIndex = j; //Переходимо на позицію j

}

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

24. Запрограмуйте команду головного меню „Збережіть зміни в списку записів”.

void __fastcall TPagesDlg::N8Click(TObject *Sender)//Тут N8 – номер команди „Записати в файл”, у вас може бути інший

{

int i = ComboBox1->ItemIndex + 1; //Визначаю номер активного запису

if (PageControl1->ActivePage==TabSheet2)

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

StringGrid1->Cells[0][i] = Edit1->Text; //то вносимо зміни в першу

StringGrid1->Cells[1][i] = Edit2->Text;

StringGrid1->Cells[2][i] = Edit3->Text;

StringGrid1->Cells[3][i] = Edit4->Text;

}

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

NewComboBox(); //В обох випадках обновляємо комбінований список

}