- •Принципы объектно-ориентированного программирования.
- •Структура класса.
- •Свойства.
- •Статические и виртуальные методы.
- •Перезагружаемые методы.
- •Конструкторы и деструкторы.
- •Интегрированная среда разработки Delphi.
- •Визуальные средства разработки.
- •Программирование с управлением по событиям.
- •Абстрактный метод.
- •Методы класса.
- •Исключительные ситуации.
- •Атрибуты доступа в Delphi.
- •Обработка исключительных ситуаций.
- •Библиотека визуальных компонентов в Delphi (vcl).
- •Ссылки на классы.
- •Указатели на методы.
- •Фреймы и шаблоны компонентов.
- •Delphi 2009: отличия от предыдущих версий.
- •Классы и модули.
- •Модули и программы.
- •Информация о типе во время выполнения.
- •Полиморфизм и виртуальные методы.
Библиотека визуальных компонентов в Delphi (vcl).
Это библиотека визуальных компонентов, сов-ть страниц, на которых скомпонованы пиктограммы всех компонентов, предопределенных в Delphi. Страницы – категории палитры инструментов.
1)Компоненты ввода и отображения информации(Edit, Memo, Label, ComboBox и др.)
2)Компоненты отображения графической и мультимедиа информации(Image, StringGrid, Shape, PaintBox, DrawGrid…)
3)Кнопки, индикаторы, управляющие элементы (Button, RadioGroup, RadioButton, CheckBox…)
4)Компоненты меню (MainMenu, PopupMenu..)
5)Панели и компоненты внешнего оформления (Panel,Splitter, ToolBar, StatusBar, Frame..)
6)Системные диалоги (OpenDialog, SaveDialog, ColorBox, PrintDialog, FindDialog, FileListBox…)
7)Прочие компоненты (Фреймы, GridPanel (таблица для размещения лбюбых компонентов)…)
Ссылки на классы.
Ссылки на классы
Type RefType = class of TControl;
Var ClassRef:Reftype;
MyObject:TControl;// класс со всеми известными компонентами
Begin
If … then ClassRef:=Tedit
Else
ClassRef:=TButton;
MyObject := ClassRef.create(self);
End;
Язык Delphi позволяет рассматривать классы объектов как своего рода объекты, которыми можно манипулировать в программе. Такая возможность рождает новое понятие — класс класса; его принято обозначать термином метакласс.
Для поддержки метаклассов введен специальный тип данных — ссылка на класс (class reference). Ссылка на класс – тип данных, значениями этого типа являются имена класса. Использование ссылок на класс позволяет сделать приложение более гибким.Он описывается с помощью словосочетания class of, например:
type
TTextReaderClass = class of TTextReader;
Переменная типа TTextReaderClass объявляется в программе обычным образом:
var
ClassRef: TTextReaderClass;
Значениями переменной ClassRef могут быть класс TTextReader и все порожденные от него классы. Допустимы следующие операторы:
ClassRef := TTextReader;
ClassRef := TDelimitedReader;
ClassRef := TFixedReader;
По аналогии с тем, как для всех классов существует общий предок TObject, у ссылок на классы существует базовый тип TClass, определенный, как:
type
TClass = class of TObject;
Переменная типа TClass может ссылаться на любой класс.
Практическая ценность ссылок на классы состоит в возможности создавать программные модули, работающие с любыми классами объектов, даже теми, которые еще не разработаны.
Физический смысл и взаимосвязь таких понятий, как переменная-объект, экземпляр объекта в памяти, переменная-класс и экземпляр класса в памяти поясняет рисунок.
Указатели на методы.
Type
Mpointer = procedure(a:integer) of object; //указ. что используем указатель
OneClass = Class
Operation:MPointer; //тип указатель на метод
End;
TwoClass = class
Procedure add(b:integer);
Procedure div(b:integer);
End;
Var oneobject:OneClass;
twoobject:TwoClass;
if … then OneObject. Operation := twoobject.add();//обращ. к указателю на объект
else OneObject.operation:=Twoobject.div();
Указатели на методы используются в классе, в процессе выполнения программы менять функциональность данных классов.
Функциональность обьектов может быть сделана разной(с помощью указателей на методы).
Указатель на метод содержит 2 указателя:
1) Указатель на область памяти, где хранится метод
2) На тот обьект, метод которого заимствует( TObject)