Использование библиотек OpenGL и GLU - раздел Программирование, Объектно-ориентированное программирование 5.21. Создание Программистом Собственного Компонента
...
5.21. Создание программистом собственного компонента
Литература
1. В.В.Фаронов . Delphi 6. Учебный курс.- М.:"Нолидж", 2001.- 608 с.
2. П.Г.Дарахвелидзе, Е.П.Марков.Delphi 4. Среда визуального программирования.-СПб.:БХВ – Санкт-Петербург, 1999. – 816 с.
3. А.М.Епанешников, В.А.Епанешников. Программирование в среде Delphi: Учебное пособие в 4-х частях. М.: ДИАЛОГ-МИФИ, 1997-1998.
4. М.В.Краснов. OpenGL.Графика в проектах Delphi. -СПб.:БНВ-Санкт-Петербург, 2000.-352 с.
5. Тэйлор Д. и др. Переход на Kylix для Delphi-программистов./Пер.с англ. СПб: "Питер" – 2002.- 304 с.
6. Калверт Ч. и др. Borland Kylix. Руководство разработчика./Пер.с англ.: "Вильямс" - 2002, 880 с.
7. Г.Буч. Объектно-ориентированный анализ и проектирование с примерами приложений на C++, 2-е изд./Пер.с англ.-М., Бином,СПб, 2000.-560 с.
8. Д.Чеппел. Технологии ActiveX и OLE./Пер.с англ.-М.:"Русская Редакция”,1997.-320 с.
9. А.Л.Фридман. Основы объектно-ориентированного программирования на языке Си++.-М.:Горячая линия-Телеком, Радио и связь, 1999.-208 с.
Все темы данного раздела:
Object PASCAL
(72 часа)
Вадим Валериевич Монахов, доцент кафедры вычислительной физики СпбГУ
Введение
1.1. Основной принцип ст
Алфавит языка PASCAL. Идентификаторы.
Основной алфавит языка PASCAL состоит из латинских букв и цифр.
Буквы:
ABCD...XYZ — заглавные (прописные),
abcd...xyz — строчные,
а также знак _
Простые и составные специальные символы, используемые на ПК.
Перечисленный ниже набор несколько расширяет стандарт PASCAL, однако на ПК является стандартом de facto.
Простые специальные символы:
+
Плюс – “сложени
Стандартные типы данных. Двоичное представление чисел и дополнительный код.
Целые типы
Byte: 0..255 — байтовый (1 байт)
ShortInt: -128..127 — короткое целое (1 байт)
Word: 0..65535 — 16-ричное слово (2 байта)
Inte
Арифметические операторы.
Бинарные полиморфные (тип результата определяется по правилам приведения типов,
см. далее):
+ сложение (все целые и вещественные типы, строковые типы, множества).
Логические операторы и операции отношения.
Логические операторы:
and логическое "И". Пример: a and b
or логическое "ИЛИ": a or b
xor логическое "исключающее ИЛИ": a xor b
not
Потеря точности, потеря порядка и переполнение при арифметических операциях.
Пусть x1 – арифметическая переменная real, x2 – вещественная extended. Тогда выполнение присваиваний x2:=1+1e-14 даст 1.00000000000001, а x1:=1+1e-14 даст 10000000000000,т.к. числа real имеют всего
Структура простейшей программы.
В PASCAL любое число пробелов, символов <TAB> или переносов на новую строку везде приводится к одному пробелу (конечно, кроме строковых выражений). Имя файла с текстом программы должно быть т
Простейшие операторы языка Object PASCAL
2.9.1. Пустой и составной операторы.
Операторы в языке PASCAL разделяется символом ";".
Пустой оператор — это просто пустая строка (или эквивален
Процедуры и функции. Формальные и фактические параметры. Передача параметров по ссылке, по значению и через указатель.
Процедуры по своей структуре напоминают независимую программу, вложенную в основную программу. Главное их отличие в том, что они, как правило, имеют параметры, передаваемые из внешнего программного
Локальные и глобальные переменные. Побочный эффект функции. Вложенность процедур и функций. Правила видимости.
В приведенных выше примерах часть переменных описана в блоке описания переменных программы. Такие переменные называются глобальными. Они существуют в любой момент выполнения программы. Другая часть
Модули. Секции декларации, интерфейса и реализации. Области видимости.
На самом деле общая структура модуля при наличии в нем класса несколько сложнее. Обсудим ее более подробно.
Написание собственного модуля (unit) начинается с указания имени модуля. В нашем
Классы, экземпляры класса, наследование, иерархия.
Объектный тип (например, tDot) называется классом. Переменная данного типа — объект или, что то же самое, экземпляр класса. То есть при задании
Var dDot:tDot
переменная dDot – это
Пример объектно-ориентированной программы: движение фигур по экрану.
unit Figures;
interface
uses…;
type
tLocation=
object
X,Y:Integer;
procedure Init(X_,Y_:Integer);
function GetX:Integer;
Виртуальные методы. Конструкторы. Раннее и позднее связывание. Полиморфизм.
В приведенной выше программе при описании объектов некоторые методы заданы как виртуальные (virutal). В этом случае перед вызовом какого-либо метода соответствующего экземпляра класса (переменной о
Динамические объекты. Выделение и высвобождение памяти. Деструкторы.
Указатель на объект устроен так же, как обычные указатели:
Правила присваивания. Совместимость типов для объектов.
Для потомков при использовании их "на месте" прародителей любого уровня имеется два основных варианта совместимости типов (по вызовам и по присваиваниям) между:
1. экземплярами о
Пример на создание, присваивание и уничтожение динамических объектов.
Unit FigDemo1;
Uses…,Figures,FigArc;
var FigKey:char;
Ang1_ini,Ang2_ini,R_ini,X_ini,Y_ini:Integer; newX,newY,newR:Integer;
pFigure:tpDot;
outside:Boolea
Пример динамического выделения и высвобождения памяти для однонаправленного списка объектов.
Создадим список, в котором хранятся различные фигуры — объекты иерархии с классом-прародителем tDot. Введем запись типа "узел", ссылающийся на одну фигуру и один другой (предыдущий) узел:
Очередь, стек, двунаправленный список.
Совершенно аналогичным образом можно создавать объект — двунаправленный список, в котором каждый узел имеет указатели как "влево" (на предыдущий узел), так и "вправо" (на послед
Классы, объекты, поля и методы.
В Object Pascal класс — тип записи, который может иметь в своем составе поля данных и методы (а также свойства, но о них будет отдельный разговор).
Пример описания класса и переменн
Свойства.
В Delphi пожелание ООП "не обращаться из программы к полям, а действовать через методы" нашло отражение в новом для ООП принципе — свойствах объекта.
Свойство определяется
Создание и уничтожение объектов. Конструкторы и деструкторы.
В Object Pascal объекты могут быть только динамическими! Любая переменная объектного типа — это указатель, но доступ к объекту идет без 'шляпки', а создание нового объекта осуществляется не операто
Наследование. Статические, виртуальные, динамические и абстрактные методы.
Все классы Delphi — потомки класса tObject. Если нет указания, какой класс является прародителем, значит, это tObject. Определение
tMyObject=class
...
end;
полно
Области видимости объектов.
В Delphi существуют зарезервированные слова public ("общие"), protected ("защищенные") и private ("личные") для определения специальных правил видимости областей кода
Обработка исключительных ситуаций.
Во время работы программы часто встречаются исключительные ситуации: деление на 0, отсутствие места на диске или попытка писать на защищенную для записи дискету, ошибочный символ при вводе (наприме
Специальные средства для работы с MS Windows: сообщения.
Для обработки сообщений Windows в Delphi существует механизм динамических методов, называемых сообщениями. Они должны быть описаны в классе как процедуры, имеющие один параметр, передаваемый по име
События и их делегирование. Обработка событий.
События — это свойства процедурного типа. Их название принято начинать с префикса "on". Для описания события некого типа (как описать новый тип события будет рассказано далее) в объекте н
Методы класса и указатели на класс.
Некоторые методы бывает нужно вызывать без создания экземпляра класса (например, для получения информации о имени класса, размере экземпляра класса и т.п.). Такие методы называются методами класса
Дополнительные возможности Object Pascal.
4.17.4. Функции
а) могут возвращать значения определенных пользователем типов, включая сложные;
б) внутри каждой функции предопределена доступная по чтению и записи локальн
Визуальное проектирование в среде Delphi.
Перед началом работы обычно надо настроить пути к библиотеке Delphi, а в Delphi 3.0 также установить пакеты. Это связано с тем, что Windows 95 (и, тем более, NT 4.0) имеет индивидуальные настройки
Создание экранных форм. Инспектор объектов.
При входе в Delphi автоматически открывается проект "по умолчанию". Изначально это проект с пустой экранной формой, на которой пунктиром показана сетка, к которой идет привязка для выравн
Палитра компонентов.
Мы будем описывать только наиболее важные свойства и события для компонентов и перечислим только наиболее часто используемые компоненты из стандартных библиотек Delphi 3.0. Для Delphi 2.0 практичес
Общие представления об интерфейсах в Object PASCAL
Интерфейс объекта определяют методы и свойства, которые могут быть реализованы классом-наследником этого интерфейса. Они описываются аналогично абстрактным классам, так же, как абстрактные классы,
Особенности разработки DLL
Работа программ с DLL (Dynamic Link Library) поддерживается операционной системой, а не компилятором какого-либо языка программирования. Они представляют собой универсальный механизм использования
ActiveX
Подпроцессы (Threads)
Для создания дополнительного подпроцесса в программах Delphy предназначен специальный модуль (в репозитории он представлен пиктограммой Thread Object
Новости и инфо для студентов