- •Министерство образования и науки рф
- •1Общие требования
- •2Последовательность выполнения работы
- •3Порядок контроля и приёмки
- •4Пример выполнения работы
- •Создание mdi оболочки приложения. Определение структур данных в соответствии с заданием
- •4.1.1Создание mdi оболочки приложения
- •4.1.2Определение структур данных
- •4.2Добавление строк в таблицы, а также добавление фотографий
- •4.2.1Создание диалога для добавления строк в таблицы
- •4.2.2Объявление переменных, для хранения таблиц. Их инициализация и удаление
- •4.2.3Добавление строки в таблицу
- •4.2.4Загрузка изображения
- •4.2.5Отображение графического окна
- •Отображение строк таблиц
- •4.2.6Создание графического окна для отображения строк таблиц
- •4.2.7Вывод строк таблицы на экран
- •4.2.8Отображение графического окна
- •4.3Сохранение структур данных таблиц в файлы
- •4.4Чтение данных таблиц из файлов и заполнение соответствующих структур в памяти
- •4.5Реализация операций манипулирования над данными для каждой таблицы: изменение, удаление и сохранение значений в таблицах
- •4.5.1Реализация функции изменения строк таблицы на базе имеющегося диалога для добавления строк
- •4.5.2Вызов диалога добавления / изменения строк
- •4.5.3Удаление строк таблицы
- •4.6Создание фильтра строк по заданным условиям для каждой таблицы
- •4.7Реализация запросов на выбор данных из одной или нескольких таблиц
- •5Практические задания для самостоятельной работы
- •5.1Вариант 1
- •5.2Вариант 2
- •5.3Вариант 3
- •5.4Вариант 4
- •5.5Вариант 5
- •5.6Вариант 6
- •5.7Вариант 7
- •5.8Вариант 8
- •5.9Вариант 9
- •5.10Вариант 10
- •5.11Вариант 11
- •5.12Вариант 12
- •5.13Вариант 13
- •5.14Вариант 14
- •5.15Вариант 15
- •5.16Вариант 16
- •5.17Вариант 17
- •5.18Вариант 18
- •5.19Вариант 19
- •Список рекомендуемой литературы
4.2.3Добавление строки в таблицу
Вернувшись к объекту TfmStudent, добавим в конструктор этого объекта программный код, позволяющий работать с фотоизображениями. В приведённом примере imPhoto – это объект для отображения фотографии, изображённый на рисунке 4.2 пунктирной линией.
Создание объекта для работы с фотоизображением
// файл fmStudentUnit.cpp, класс TfmStudent
__fastcall TfmStudent::TfmStudent(TComponent* Owner)
: TForm(Owner)
{
...
Graphics::TBitmap *Photo = new Graphics::TBitmap();
imPhoto->Picture->Bitmap = Photo;
}
В процессе выполнения приложения при отображении на экране диалога TfmStudent пользователь производит заполнение текстовых, числовых полей, а по окончании ввода, нажимает кнопку Ok. Поэтому необходимо создать обработчик нажатия кнопки Ok, в котором описать действия по добавлению строки в таблицу.
Добавление строки в таблицу
// файл fmStudentUnit.cpp, класс TfmStudent
void __fastcall TfmStudent::btOkClick(TObject *Sender)
{
// Объявление указателя на строку в соответствии с типом текущей таблицы
TStudent *student;
// Выделение памяти для новой строки
student = new TStudent();
// Заполнение значений новой строки значениями из элементов графического окна
student->No = edNo->Text;
student->Fio = edFIO->Text;
student->GroupNo = edGroup->Text;
student->Birthday = dtBirthday->DateTime;
student->Address = edAddress->Text;
student->Photo->Assign(imPhoto->Picture->Bitmap);
// Добавление новой строки в общий список строк таблицы
MainForm->Students->Add(student);
}
В приведённом примере имеется несколько особенностей. Во-первых, использованный тип TStudent объявлен ранее в другом файле StructDef.h. Поэтому, для того чтобы в текущем модуле TfmStudent этот тип был доступен, необходимо произвести подключение указанного заголовочного файла, то есть добавить: #include "StructDef.h" в начало файла. Во-вторых, для использования объекта MainForm также необходимо подключить требуемый заголовочный файл, то есть добавить: #include "Main.h".
4.2.4Загрузка изображения
Для того чтобы загрузить фотоизображение, воспользуемся стандартным диалогом библиотеки VCL для открытия файлов – OpenDialog. В группе визуальных компонент выберите группу Dialogs, а в ней элемент OpenDialog и разместите его на форме. Созданный диалог для выбора файлов позволит пользователю быстро и удобно найти графическое изображение. По завершению поиска, необходимо произвести соответствующую обработку, а именно: проверить результат работы диалога (ОК или Отмена), получить имя выбранного файла и загрузить в графический объект изображение из файла.
Загрузка изображения из выбранного файла
// файл fmStudentUnit.cpp, класс TfmStudent
void __fastcall TfmStudent::btChooseImageClick(TObject *Sender)
{
if (!OpenDialog1->Execute())
return ;
imPhoto->Picture->Bitmap->LoadFromFile(OpenDialog1->FileName);
}
4.2.5Отображение графического окна
Для того чтобы просмотреть результат проделанной работы, необходимо реализовать отображение созданного графического окна из главного модуля. Удобнее всего создать в главном модуле дополнительный элемент меню, который будет отвечать за отображение графического окна.
Обработчик отображения графического окна
// файл main.cpp, класс TMainForm
void __fastcall TMainForm::N3Click(TObject *Sender)
{
// Создание и выделение памяти для графического окна
TfmStudent *fmStudent = new TfmStudent(this);
// Отображение графического окна
fmStudent->ShowModal();
// Удаление окна
delete fmStudent;
}
На рисунке 4.3 представлен примерный вид построенного окна.
Рисунок 4.3 – Рабочий вид окна добавления / обновления строки