Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование_С++Builder.doc
Скачиваний:
8
Добавлен:
21.08.2019
Размер:
468.48 Кб
Скачать

Федеральное агентство по образованию

Уральский государственный технический университет  УПИ

Программирование на языке C++

Часть 5

Визуальное программирование в среде C++ Builder

Методические указания к лабораторным и самостоятельным работам

для слушателей курсов повышения квалификации и студентов всех форм обучения всех специальностей

Печатается по решению редакционно-издательского совета

УГТУ–УПИ от 18.01.2007 г.

Екатеринбург

УГТУ-УПИ

2007

УДК 004.43 (075.8)

Составитель А.В. Кибардин

Научный редактор доц., канд. техн. наук Б.В.Семенов

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ с++ : методические указания к лабораторным и самостоятельным работам. В 5 ч. Ч. 5. Визуальное программирование в среде С++ Builder / сост. А.В. Кибардин. Екатеринбург : УГТУ–УПИ, 2007. 40 с.

Методические указания описывают технологии визуального проектирования и событийно-управляемого программирования на языке С++ в среде C++ Builder.

Методические указания ориентированы на студентов, аспирантов, слушателей ФПК и подготовительного отделения, обучающихся основам современных информационных технологий.

Библиогр.: 4 назв. Рис. 4.

Подготовлено факультетом повышения квалификации преподавателей

и профессиональной переподготовки.

© Уральский государственный

технический университет – УПИ, 2007

Введение

В данной части методических указаний описаны технологии событийно-управляемого и визуального программирования на языке С++ в среде С++ Builder.

Для работы с методическими указаниями необходимо владеть основами программирования на языке С++ и знать следующие технологии:

  • структурного программирования;

  • модульного программирования;

  • объектно-ориентированного программирования (ООП).

Этим технологиям посвящено большое количество учебной литературы, в том числе [1-3].

ОСНОВЫ ПРОГРАММИРОВАНИЯ В СРЕДЕ C++ Builder

Особенности программирования в среде Windows

Система C++ Builder предназначена для разработки программ, работающих в среде Windows. Программирование в Windows имеет следующие особенности:

  1. программный код состоит из процедур обработки сообщений, которые Windows посылает приложению (программе);

  2. Windows фиксирует возникающие в программах и аппаратуре события и посылает соответствующие сообщения в программу;

  3. одновременно могут выполняться несколько программ. Эти программы делят между собой ресурсы компьютера;

  4. работающая программа находится в рабочей области памяти и ожидает сообщений от Windows, на которые она должна реагировать;

  5. взаимодействие с аппаратным обеспечением происходит через графический интерфейс устройств.

Windows предлагает разработчику программы так называемую управляемую событиями среду, когда код программы исполняется как реакция на определенное событие.

Windows создает входное сообщение для каждого входного события, генерируемого пользователем с помощью мыши или клавиатуры. Windows сохраняет входные сообщения в очереди системных сообщений. Затем эти сообщения посылаются в очередь сообщений приложения. Сообщение приложению от Windows формируется путем создания записи сообщения в очереди сообщений. Некоторые сообщения от Windows посылаются непосредственно в окно приложения – это так называемые внеочередные сообщения.

Приложение также может создавать собственные сообщения, помещать в свою очередь сообщений и посылать их другим приложениям.

Каждое приложение выполняется в своем собственном окне, имеющем уникальное описание – дескриптор. Поскольку в записи сообщения указывается, кому предназначено данное сообщение, то Windows пересылает его по указанному адресу.

Приложение должно быть в состоянии обработать любое сообщение. Практически для каждого события Windows имеет стандартную процедуру обработки. В приложении должно быть указано, что при возникновении события NM, для которого в программе нет специального кода, должна выполняться стандартная процедура Windows.

Большинство стандартных сообщений программы обрабатывается автоматически, поскольку все объекты C++ Builder имеют встроенный механизм - процедуру обработки сообщений.

Основные понятия ООП в С++ Builder

Программирование в С++ Builder основывается на языке C++.

В C++ вводится специальный тип данных – класс. Класс – это структура данных, состоящая из следующих элементов:

  • полей;

  • методов;

  • свойств.

Поля содержат данные определенного типа.

Методы – это функции, выполняющие определенные действия.

Свойства – это поля данных, которые влияют на поведение объекта. Они отличаются от обычных полей тем, что присвоение им значений связано с вызовом соответствующих методов.

Для описания класса в языке используется зарезервированное слово class.

Класс объявляется в модуле приложения (см. ниже).

В C++ базовым классом для всех классов является абстрактный класс TObject. Поэтому, если нужно создать новый класс данных, то необходимо использовать следующее описание:

class TNewObject : [private | protected | public] TObject

{тело класса};

Напоминаем, что при описании класса в его заголовке перечисляются все классы, являющиеся для него базовыми. Возможность обращения к элементам этих классов регулируется с помощью ключей доступа private, protected и public (см.[3]).

Объект является экземпляром класса. Экземпляр класса реализуется переменной данного типа класса, например:

TNewObject *NewObject;

Управление файлами в С++ Builder

В начале работы над проектом C++ Builder предоставляет в распоряжение разработчика фактически готовую программу. Эта программа состоит из одного окна с заголовком Form1 и обладает функциональными возможностями стандартного окна Windows. При этом создаются следующие файлы прило-жения.

Главный модуль проекта Project1.cpp содержит код главной программы, написанной на языке C++. В файле содержатся ссылки на все формы проекта и относящиеся к ним модули. В нем также находится код инициализации приложения:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM("Unit1.cpp", Form1);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

try

{

Application->Initialize();

Application->CreateForm(__classid(TForm1), &Form1);

Application->Run();

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

catch (...)

{

try

{

throw Exception("");

}

catch (Exception &exception)

{

Application->ShowException(&exception);

}

}

return 0;

}

//---------------------------------------------------------------------------

Модули формы

Для каждой формы C++ Builder создает отдельный модуль, который состоит из двух файлов: заголовочного файла и файла кода (содержимое этих файлов показывается в окне редактора кода). Заголовочный файл Unit1.h содержит описание формы и выглядит так:

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

private: // User declarations

public: // User declarations

__fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif

Файл кода (модуль формы) Unit1.cpp содержит описание функций, в том числе и обработки событий:

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

: TForm(Owner)

{

}

//---------------------------------------------------------------------------

Кроме того, C++ Builder, анализируя действия программиста, формирует файл описания свойств формы (форм, если их больше в проекте, чем одна) как компонента стандартной библиотеки визуальных компонентов Unit1.dfm, файл проекта Project1.bpr и файл ресурсов проекта. Результат компиляции проекта (исполняемое приложение) сохраняется в файле Project1.exe. Файлы с расширением tds obj создает компилятор в процессе генерации исполняемого файла. Резервные копии файлов проекта имеют в качестве первого символа расширения символ ”~” (*.~*).