Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

DELPHI содержит сложную иерархию классов, которые можно использовать в программе, создавая объекты этих классов или формируя-классы потомки. В начале этой иерархии стоят классы, называемые



DELPHI содержит сложную иерархию классов, которые можно использовать в программе, создавая объекты этих классов или формируя-классы потомки. В начале этой иерархии стоят классы, называемые абстрактными классами. Для них нельзя создать полноценные работающие объекты, но они являются родоначальниками целых семейств классов, для которых такие объекты уже могут быть созданы. Исходя из свойства наследования, в абстрактных классах помещены характеристики, присущие всем классам их семейств.

Структура некоторых абстрактных классов, находящихся в начале иерархии классов, приведена на рисунке.10

Класс TObject является предком всех других классов, используемых в DELPHI. Он включает в себя характеристики, свойственные всем используемым классам. Некоторые методы класса TObject могут использоваться без создания соответствующих объектов с учетом того, что реального объекта такого класса может и не быть. Эти методы позволяют получить общие характеристики класса – адрес таблицы, содержащей характеристики класса, имя класса, имя предка класса, характеристики методов и т. д. Примеры некоторых методов класса TObject: ClassName – функция класса (типа ShortString) формирует строку, содержащую имя класса, данное ему при создании; ClassParent – функция, определяющая класс непосредственного предка данного класса; ClassType – функция возвращает класс конкретного объекта; InstanceSize – функция (типа Longint) возвращает размер класса или объекта в байтах; FieldAddress(Name) – функция типа Pointer возвращает адрес поля объекта с именем Name типа ShortString.

Класс TPersistent (Постоянный) является потомком класса TObject и предком всех классов, объекты которых могут быть помещены в память и взяты из памяти. Основными потомками класса TPersistent являются классы TComponent (Компонента) – предок всех компонент проекта; TStrings (Строки) – предок всех списков строк; TCollection (Коллекция) – коллекция (список) элементов; TGraphicObject (Графический объект), TCanvas (Канва – основа для рисования), TGraphic (Графический элемент), TPicture (Изображение) – классы, образующие так называемый графический инструментарий DELPHI.

Класс TControl является родоначальником всех элементов управления, с помощью которых выводится информация на экран и с помощью которых можно вводить информацию в программу, используя клавиатуру и мышь. Его потомок класс TWinControl служит для создания окон Windows. Класс TGraphicControl отличается от класса TWinControl отсутствием у объектов его семейства оконной функции, в связи с чем такие элементы либо служат для вывода на экран информации, либо являются чисто декоративными. Методы базового класса Tobject, как отмечалось выше, позволяют легко получать информацию о характеристиках созданного класса и его потомках.



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

Пример:

procedure TForm1.Button1Click(Sender: TObject);

var Memo: TMemo;

begin

Memo:=TMemo.Create(Form1);

Memo.Parent:=Form1;

Memo.Left:=50;

Memo.Top:=50;

Memo.Width:=250;

Memo.Height:=100;

end;

Run-time type information (RTTI) - это специальный механизм определения типа объекта во время выполнения. Чаще всего это актуально для определения типа объекта по указателю. Многие каркасные библиотеки самостоятельно поддерживают этот мехзанизм. В том числе и VCL.

Событийно-ориентированное программирование — парадигма программирования, в которой выполнение программы определяется событиями — действиями пользователя (клавиатура, мышь), сообщениями других программ и потоков, событиями операционной системы.

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

Нужно объявить процедуру в частных объявлениях (в области Private объекта TForm1):

procedure WMPaint(var Msg: TWMPaint); message wm_Paint;

В разделе implementation модуля добавляем определение процедуры:

procedure TForm1.WMPaint(var Msg: TWMPaint);

begin

beep;

inherited;

end;

Функция D efWindowProc обеспечивает стандартную обработку сообщений для сообщений, которые явно не обрабатываются прикладной задачей.

Среда Delphi хранит для каждого компонента имена всех его обработчиков событий и выводит их на экран в окне "Инспектор объектов" (Object Inspector) во вкладке "События" (Events). Для того чтобы создать обработчик события, необходимо выполнить следующие действия:

- выберите компонент, для которого необходимо обработать событие.

- откройте вкладку "События" (Events) и два раза щелкните по правому столбцу выбранного события.

В результате этих действий Delphi автоматически сгенерирует процедуру обработки события. Имя этой процедуры состоит из имени компонента и названия события. Оно может быть изменено пользователем непосредственно в окне "Инспектор объектов".

Параметр Sender в Delphi-программе присутствует в каждом обработчике событий любого компонента. Sender имеет тип TObject, и имеет значение объекта - источника события, в обработчике которого он используется. То есть, если на Форме находится несколько одинаковых компонентов, к тому же выполняющих одинаковые функции, то нет необходимости для каждого из них создавать свои процедуры-обработчики событий. Вполне достаточно одного комплекта обработчиков, а выяснить, к какому компоненту относится событие, обрабатываемое именно сейчас, позволит именно параметр Sender.

procedure TForm1.Button1Click(Sender: TObject);

begin

end;


Дата добавления: 2015-09-29; просмотров: 23 | Нарушение авторских прав




<== предыдущая лекция | следующая лекция ==>
1. Государственно частное партнерство: понятие, формы | Календарно-тематичне планування

mybiblioteka.su - 2015-2024 год. (0.009 сек.)