Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4 семестр.doc
Скачиваний:
5
Добавлен:
02.08.2019
Размер:
137.73 Кб
Скачать
  1. Библиотека визуальных компонентов в 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 (таблица для размещения лбюбых компонентов)…)

  1. Ссылки на классы.

Ссылки на классы

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 может ссылаться на любой класс.

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

Физический смысл и взаимосвязь таких понятий, как переменная-объект, экземпляр объекта в памяти, переменная-класс и экземпляр класса в памяти поясняет рисунок.

  1. Указатели на методы.

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)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]