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

4.2Добавление строк в таблицы, а также добавление фотографий

Действия, описанные в разделах 4.2.1 – 4.2.5, необходимо повторить для каждой отдельной создаваемой таблицы.

4.2.1Создание диалога для добавления строк в таблицы

Согласно пункту 5 «Общих требований» операция добавления строк в таблицы, должна производиться в отдельном графическом окне. Для создания нового графического окна выполните File – New – Form. Задайте имя для созданного объекта, выполнив команду Alt+Enter и введя в свойство Name требуемое имя, например: fmStudent. Затем сохраните новое окно, выполнив File – Save (имя сохраняемого файла должно состоять из имени созданного объекта, дополненного словом «Unit», например, fmStudentUnit).

Разместите необходимые графические элементы в окне, при этом не забывая присваивать осмысленные наименования объектам, например: объект для ввода номера – edNumber, объект для ввода ФИО – edFIO и т.д. Примерный вид окна представлен на рисунке 4.2. Для отображения графического объекта будет полезным установить свойство Stretch = true. Это позволит автоматически масштабировать загружаемое изображение.

Рисунок 4.2 – Проект окна для добавления строки в таблицу

Среда разработки Borland C++ Builder 6.0 функционирует таким образом, что все новые графические окна по умолчанию являются авто-создаваемыми, то есть создаются автоматически при старте приложения, даже если этого не требуется. Для того чтобы запретить автоматическое создание графического окна выполните Project – Options (либо нажмите Alt+F7) и во вкладке Forms переместите объект с требуемым именем, например, fmStudent, из списка Auto-Create Forms в список Available Forms.

4.2.2Объявление переменных, для хранения таблиц. Их инициализация и удаление

Прежде чем приступить к добавлению строк в таблицы, необходимо организовать объекты для хранения таблиц. Согласно пункту 4 «Общих требований», структуры данных каждой таблицы должны храниться в памяти в виде списка TList. Поэтому в заголовочном файле «main.h» в «public:»-секции класса необходимо объявить объекты для хранения таблиц, а в конструкторе объекта TMainForm выделить память под таблицы.

    1. Объявление объектов для хранения таблиц

// файл main.h, класс TMainForm

public:

...

// Таблица студентов

TList *Students;

// Таблица Дисциплин

TList *Disciplines;

// Таблица Дисциплин-Студентов

TList *D_Ss;

    1. Выделение памяти для объектов

// файл main.cpp, класс TMainForm

__fastcall TMainForm::TMainForm(TComponent *Owner)

: TForm(Owner)

{

Students = new TList();

...

}

В деструкторе объекта TMainForm (т.е. при закрытии приложения, когда объекты больше не понадобятся) необходимо освободить память, занимаемую таблицами:

    1. Освобождение памяти, занимаемой объектами

// файл main.cpp, класс TMainForm

__fastcall TMainForm::~TMainForm()

{

TStudent *student;

// Выполнять цикл, пока количество элементов в таблице > 0

while (Students->Count > 0)

{

// Получает указатель на первый элемент в таблице

student = (TStudent *)Students->First();

// Исключает элемент из таблицы

Students->Remove(student);

// Освобождает память, занимаемую элементом

delete student;

}

// Освобождает память, занимаемую таблицей

delete Students;

...

...

}

Убедитесь, что приложение не содержит синтаксических ошибок. Для этого скомпилируйте и запустите приложение.