В Камаев - Технологии программирования

Здесь есть возможность читать онлайн «В Камаев - Технологии программирования» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2006, ISBN: 2006, Издательство: Издательство «Высшая школа», Жанр: Прочая околокомпьтерная литература, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

Технологии программирования: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «Технологии программирования»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге изложены технологии структурного программирования, объектно-ориентированного проектирования, визуального программирования, технология, основанная на абстракции данных Дейкстеры. Рассмотрено использование средств автоматизации проведения программных разработок.
Второе издание (1-е — 2005 г.) дополнено главами по структуре данных и основам инженерии создания программ.
Для студентов вузов, обучающихся по направлению «Информатика».

Технологии программирования — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «Технологии программирования», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

9. СОБЫТИЯ И ДЕЛЕГИРОВАНИЕ

Работать с большим количеством сообщений, даже имея под рукой справочник, нелегко, поэтому одним из больших достижений Delphiявляется то, что программист избавлен от необходимости работать с сообщениями Windows (хотя такая возможность у него есть). Стандартных событий в Delphi не более двух десятков, и все они имеют простую интерпретацию, не требующую глубоких знаний среды.

Рассмотрим, как реализованы события на уровне языка Object Pascal. События — это свойства процедурного типа, предназначенные для создания пользовательской реакции на те или иные входные воздействия:

propertyOnMyEvent: TMyEvent readFonMyEvent

writeFonMyEvent;

Присвоить такому свойству значение — это означает указать объекту адрес метода, который будет вызываться в момент наступления события. Такие методы назовем обработчиками событий. Например:

Application.OnActive:= MyActivatingMethod;

Это означает, что при каждой активизации Application (так называется объект, соответствующий работающему приложению) будет вызван метод-обработчик MyActivatingMethod.

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

ifAssigned(FonMyEvent)

then

FonMyEvent(Self);

В зависимости от происхождения и предназначения события имеют разные типы. Общим для всех является параметр Sender, указывающий на объект-источник события. Самый простой тип — TNotifyEvent — не имеет других параметров:

TNotifyEvent = procedure(Sender: TObject) of object;

Тип метода, предназначенный для извещения о нажатии клавиши, предусматривает передачу программисту кода этой клавиши, а передвижение мыши — ее координат и т. п.

Все события в Delphi принято именовать с "On": OnCreate, OnMouseMove, OnPaint и т. д. Щелкнув в Инспекторе объектов на странице Events в поле любого события, автоматически получается заготовка метода нужного типа. При этом его имя будет состоять из имени текущего компонента и имени события (без "On"), а относиться он будет к текущей форме. Пусть, например, на форме Form1 есть текст Label1. Тогда для обработки щелчка мышью на нем (событие OnClick) будет создан метод Tform1. Label1Click.

Поскольку события — это свойства объекта, их значения можно изменять во время выполнения программы. Такая замечательная возможность называется делегированием. Можно в любой момент взять способы реакции на события у одного объекта и делегировать их другому:

Object.OnMouseMove:= Object2.OnMouseMove;

Но какой механизм позволяет подменять обработчики, ведь это не просто процедуры, а методы? Здесь как нельзя кстати приходится введенное в Object Pascal понятие указателя на метод. Помимо явно описанных параметров методу передается еще и указатель на вызвавший его экземпляр (Self). Вы можете описать тип процедуры, которая будет совместима по присваиванию с методом (т. е. предусматривать получение Self). Для этого в ее описание нужно добавить зарезервированные слова of Object. Указатель на метод — это указатель на такую процедуру:

type

TmyEvent = procedure(Sender: TObject;

varAvalue: Integer) of object;

T1stObject = class;

FOnMyEvent: TMyEvent;

propertyOnMyEvent: TMyEvent read FonMyEvent

writeFonMyEvent;

end;

T2ndObject = class;

procedureSetValue1(Sender: TObject;

varAvalue: Integer);

procedureSetValue2(Sender: TObject;

varAvalue: Integer);

end;

var

Obj1: T1stObject;

Obj2: T2ndObject;

begin

Obj1:= T1stObject.Create;

Obj2:= T2ndtObject.Create;

Obj1.OnMyEvent:= Obj2.SetValue1;

Obj2.OnMyEvent:= Obj2.SetValue2;

end;

Как в этом примере, так и повсюду в Delphi за свойствами-событиями стоят поля, являющиеся указателями на метод. Таким образом, при делегировании можно присваивать методы других классов. Здесь обработчиком события OnMyEvent объекта Obj1 по очереди выступают методы SetValue1 и SetValue2 объекта Obj2.

10. ФУНКЦИИ КЛАССА

В Object Pascalимеется возможность определения полей процедурного типа. Очевидно, что в теле функций, привязываемых к этим полям, разработчику необходим доступ к другим полям объекта, методам и т. п. Возможность такого доступа базируется на передаче в эти функции неявного, но доступного в их коде параметра, автоматически принимающего значение поля объекта Self. Такие функции называются функциями классов. Для объявления функций классов необходимо использовать специальную конструкцию functionof object.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «Технологии программирования»

Представляем Вашему вниманию похожие книги на «Технологии программирования» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «Технологии программирования»

Обсуждение, отзывы о книге «Технологии программирования» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x