Материал: Технологии разработки приложений в средах Delphi и C++ Builder. Минаева Ю.В

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
    1. Описание класса в Object Pascal

В языке Object Pascal классы – это специальные типы данных, используемые для описания объектов. Соответственно объект, имеющий тип какого-либо класса, является экземпляром этого класса или переменной этого типа.

Класс представляет собой особый тип записи (record), имеющий в своем составе такие элементы, как поля, свойства и методы. Поля класса аналогичны полям записи и служат для хранения информации об объекте. Методами называются процедуры и функции, предназначенные для обработки полей. Свойства во многом аналогичны полям класса, но, если поле является только ячейкой памяти, чье содержимое можно считать и изменить, свойство связывает чтение или изменение данных с каким-либо действием.

Описание класса имеет следующую структуру:

type

<имя класса> = class (<имя класса-родителя>)

private <внутренние (недоступные) описания>;

protected <защищенные описания>;

public <общедоступные описания>;

end;

Имя родительского класса указывается, если новый класс должен наследовать все его характеристики.

Для различных элементов класса можно устанавливать разные права доступа (видимости), для чего в описании класса используются отдельные разделы, обозначенные специальными спецификаторами видимости.

Разделы private и protected содержат защищенные описания, которые доступны внутри модуля, в котором они находятся. Описания из раздела protected, кроме того, доступны для порожденных классов за пределами данного модуля.

Раздел public содержит общедоступные описания, которые видимы в любом месте программы, где доступен сам класс.

В Object Pascal разрешается сколько угодно раз объявлять любую секцию, причем порядок следования секций не имеет значения. Любая секция может быть пустой.

После описания класса необходимо описать в разделе var переменную типа класса (объект).

Обращение к полям и методам класса осуществляется с указанием имени переменной, по аналогии с обращением к полям записи с использованием:

  • составных имен:

<имя объекта>.<имя поля>

<имя объекта>.<имя метода>(<список фактических параметров>);

  • оператора присоединения with:

with <имя объекта> do

begin

… <имя поля>…

… <имя метода>…

end;

Пример описания класса и объекта:

type

TNewForm = class(TForm)

public:

procedure SetGeometry(x, y, w, h: integer);

private

x, y, w, h: integer;

end;

var

new_form: TNewForm;

Здесь класс TNewForm создается на основе родительского класса TForm. Кроме унаследованных свойств и методов класс-потомок дополнительно содержит общедоступную процедуру SetGeometry и внутренние переменные x, y, w, h. Обратиться к полям или методу объекта можно следующим образом:

new_form.x := 5;

new_form.y := 10;

new_form.SetGeometry(5, 10, 50, 100);

или

with new_form do

begin

x := 5;

y := 10;

setGeometry(5, 10,50, 100 );

end;

    1. Описание класса в C++

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

class <имя класса>

{

private: <внутренние (недоступные) описания>;

protected: <защищенные описания>;

public: <общедоступные описания>;

};

Разделы private, protected, public имеют тот же смысл, что и в Object Pascal.

Для доступа к элементам класса используются составные имена:

<имя объекта>.<имя поля>

<имя объекта>.<имя метода>(<список фактических параметров>)

Для того чтобы получить доступ к элементам класса через указатель на объект, используется не «.», а «->»:

<указатель на объект>-><имя_поля>

<указатель на объект>-><имя метода>(<список фактических параметров>).

Пример описания класса и обращения к элементам объекта:

class TNewForm : public TForm

{

public:

void SetGeometry(int x, int y, int w, int h);

private:

int x, y, w, h;

};

var

TNewForm new_form;

TNewForm * pnew_form;

...

new_form.x = 5;

new_form.y = 10;

...

pnew_form->w = 50;

pnew_form->h = 100;

...

pnew_form->SetGeometry(5, 10, 50, 100);

  1. разработка приложений для windows в средах delphi и c++Builder

    1. События и реакция на них

Внутренняя структура программ для операционной системы Windows кардинальным образом отличается от структуры консольных программ, где операторы выполнялись последовательно от начала программы, ключевого слова begin, до завершающего слова end. Windows функционирует по другому принципу. Она обрабатывает возникающие в ней события: щелчок мыши на кнопке, выбор пункта меню, нажатие клавиши, достижение встроенным таймером заданного значения времени – и передает их выполняющимся в своей среде программам. Они, в свою очередь, обычно находятся в состоянии ожидания и активизируются только при получении от операционной системы сообщений о событиях – реагируют на них.

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

    1. Интегрированная среда разработки

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

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

Delphi и C++Builder используют идентичные среды и одну и ту же библиотеку объектов VCL (Visual Component Library - библиотека визуальных компонент). Практически эти среды различаются только языком разработки: Delphi использует язык на основе Object Pascal, а C++Builder - C++. Используемые объектные модели также во многом похожи.

Рассмотрим среду визуального программирования на примере Delphi 7.

Интегрированная среда разработки IDE (Integrated Development Environment) Delphi предоставляет средства для создания, тестирования и редактирования проекта. IDE является многооконной системой и включает 6 окон (рис. 2):

  • главное окно;

  • окно Конструктора формы;

  • окно Редактора кода;

  • окно Проводника кода

  • окно Дерева объектов;

  • окно Инспектора объектов.

Главное окно содержит меню и панели инструментов. Строка заголовка главного окна содержит имя приложения и имя текущего проекта. Дополнительно во время выполнения проекта в строку заголовка добавляется признак Running. Под строкой меню располагается область, в которую помещаются встроенные панели инструментов. Первоначально в главном окне отображаются шесть панелей инструментов: Standard, View, Debug, Custom, Component Palette, Desktop.

  1. Интегрированная среда разработки Delphi 7: 1 – главное окно; 2 - окно Дерева объектов; 3 – окно Инспектора объектов; 4 – окно Проводника кода; 5 – окно Конструктора форм; 6 – окно Редактора кода

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

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

Окно Конструктора формы первоначально находится в центре экрана и имеет заголовок Form1. В нем выполняется проектирование формы, в процессе которого на форму помещаются необходимые компоненты.

Окно Редактора кода после запуска Delphi находится под окном Конструктора формы и имеет заголовок Unit1. Редактор кода представляет собой обычный текстовый редактор, с помощью которого можно редактировать текст модуля и другие текстовые файлы приложения, например, файл проекта. Каждый редактируемый файл находится в окне Редактора на отдельной странице.

Окно Проводника кода находится слева от окна Редактора кода. В нем отображается древовидная диаграмма, содержащая все типы, классы, свойства, методы, переменные и процедуры, определенные в текущем модуле. В окне Проводника кода можно удобно просматривать объекты приложения и быстро переходить к нужным объектам, что особенно важно для больших модулей.

Окно Дерева объектов (Object TreeView) после запуска системы находится под главным окном и отображает древовидную структуру объектов текущей формы. Щелчок по любому компоненту в этом окне активизирует соответствующий компонент в окне формы и отображает свойства этого компонента в окне Инспектора объектов.

Любой размещаемый на форме компонент характеризуется некоторым набором параметров: положением, размером, цветом и т.д. Часть этих параметров, например, положение и размеры компонента, можно изменить, манипулируя с компонентом в окне формы. Для изменения других параметров предназначено окно Инспектора объектов (Object Inspector). Это окно содержит две страницы – Properties (Свойства) и Events (События). Страница Properties служит для установки нужных свойств компонента, страница Events позволяет определить реакцию компонента на то или иное событие. Совокупность свойств отображает видимую сторону компонента: положение относительно левого верхнего угла рабочей области формы, его размеры и цвет, шрифт и текст надписи на нем и т. д.; совокупность событий – его поведенческую сторону: будет ли компонент реагировать на щелчок мыши или на нажатие клавиш, как он будет вести себя в момент появления на экране или в момент изменения размеров окна и т. д.

    1. Характеристика проекта Delphi

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

В состав проекта входят следующие файлы (в скобках указаны расширения имен файлов):

  • файл проекта (.dpr);

  • файл описания формы (.dfm);

  • модуль формы (.pas);

  • дополнительные модули (.pas);

  • файл параметров проекта (.dof);

  • файлы ресурсов (.res).

Кроме приведенных файлов, автоматически могут создаваться и другие файлы, например, резервные копии.

Файл проекта для приложения, включающего одну форму, имеет вид:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.Run;

end.

Имя проекта совпадает с именем файла проекта и указывается при сохранении этого файла на диске, первоначально это имя Project1. То же имя имеют файлы ресурсов и параметров проекта, при переименовании файла проекта данные файлы автоматически переименовываются.

Сборка всего проекта выполняется при компиляции файла проекта. При этом имя создаваемого приложения (exe-файл) совпадает с названием файла проекта.

В разделе uses указывается имя подключаемого модуля Forms, который является обязательным для всех приложений, имеющих в своем составе формы. Кроме того, в разделе uses перечисляются подключаемые модули всех форм проекта, первоначально это модуль Unit1 формы Form1.

Директива $R подключает к проекту файл ресурсов, который по умолчанию имеет имя, совпадающее с именем файла проекта. Поэтому вместо имени файла ресурса указан символ *.

В теле программы проекта содержится три оператора, каждый из которых реализует обращение к одному из методов объекта Application: инициализацию приложения, создание формы Form1 и запуск приложения.

При выполнении каких-либо операций с проектом код файла проекта формируется Delphi автоматически. Например, при добавлении новой формы в файл проекта добавляются две строки кода, относящиеся к этой форме, а при исключении формы из проекта эти строки также автоматически исключаются.

Для каждой формы в составе проекта автоматически создаются файл описания (.dfm) и файл модуля (.pas).

Файл описания формы содержит характеристики формы и ее компонентов. Разработчик обычно управляет этим файлом через окно Конструктора формы и Инспектор объектов. При конструировании формы в файл описания автоматически вносятся соответствующие изменения.

Файл модуля формы содержит описание класса формы. Для пустой формы, добавляемой к проекту по умолчанию, файл модуля содержит следующий код:

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs;

type

Form1 = class(TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

Источник: https://studfile.net/preview/16569085/