Искусство создания компонентов Delphi
В книге рассматриваются все вопросы создания новых компонентов в системе программирования Borland® Delphi™. Книга состоит из трех частей. Первая посвящена реализации объектно-ориентированной модели, являющейся основой любого вновь создаваемого компонента. Во второй части подробно рассматриваются все детали процесса создания компонентов, в том числе выбор родительского класса, создание модуля компонента и включение его в существующий или новый пакет, создание свойств, методов и событий, тестирование и отладка компонента и его регистрация в среде Delphi. Рассматриваются также особенности создания компонентов для работы с базами данных, проблемы разработки нестандартных редакторов свойств и компонентов, разработка контекстной справки и ее подключение к справочной службе Delphi. Описываются особенности создания компонентов в новейшей на сегодня версии Delphi 8.0, а также отличия других версий, которые необходимо учитывать при разработке компонентов. В заключительной части приводятся исходные тексты многочисленных примеров компонентов. Эти тексты, а также не рассмотренные в книге компоненты независимых разработчиков (более 2000) собраны на сопровождающем книгу компакт-диске.
Книга рассчитана в основном на подготовленного читателя (программиста, имеющего опыт работы с Delphi), но может быть полезна начинающим программистам, студентам и преподавателям.
- От автора
- Теория компонентов
- Объектная модель Delphi
- 1.1. Классы
- 1.1.2. Составляющие класса
- 1.1.3. Объявление класса
- 1.1.4. Делегирование методов
- 1.2. Интерфейсы
- 1.2.2. Интерфейсные классы
- 1.2.3. Класс TInterfacedObiect и интерфейс IUnknow
- 1.2.4. Псевдонимы методов
- 1.2.5. Приведение интерфейсных типов
- 1.2.6. Уполномоченные свойства
- 1.3. Информация о типах времени исполнения
- 1.3.2. Директива М
- Компоненты, пакеты и библиотеки
- 2.1. Компоненты
- 2.1.2. Особенности компонентов
- 2.1.3. Общие принципы разработки компонентов
- 2.2. Пакеты компонентов
- 2.2.2. Типы пакетов
- 2.2.3. Файлы пакетов и их размещение на диске
- 2.2.4. Создание пакетов
- 2.2.5. Загрузка пакета времени исполнения
- 2.2.6. Имя и структура пакета
- 2.2.7. Специфичные для пакетов директивы компилятору
- 2.2.8. Коллекции пакетов
- 2.3. Библиотеки компонентов
- 2.3.2. Инструменты Object Browser и Code Explorer
- Иерархия компонентных классов
- 3.1. Общая характеристика классов
- 3.2. Класс TComponent
- 3.2.2. Методы класса TComponent
- 3.3. Класс TControl
- 3.3.2. Методы класса TControl
- 3.3.3. События класса TControl
- 3.4. Класс TWinControl
- 3.4.2. Методы класса TWinControl
- 3.4.3. События класса TWinControl
- 3.5. Класс TGraphicControl
- 3.5.2. Методы класса TGraphicControl
- 3.5.3. События класса TGraphicControl
- 3.6. Класс TCustomControl
- 3.7. Класс TScrollingWinControl
- 3.8. Классы TCustomXXXX
- Классы общего назначения
- 4.1. Класс Exception — обработка исключений
- 4.1.2. Класс Exception
- 4.1.3. Стандартные классы исключений
- 4.1.4. Вызов исключения
- 4.1.5. Создание собственного класса
- 4.2. Класс TList — списки
- 4.3. Классы TStrings и TStringlist — наборы строк и объектов
- 4.3.2. Класс TStringList
- 4.4. Графический инструментарий
- 4.4.2. Класс ТРеп
- 4.4.3. Класс TBrush
- 4.4.4. Класс TCanvas
- 4.4.5. Классы TGraphic и TPicture
- 4.5. Некоторые API-функции для отрисовки компонентов
- Создание компонентов
- Методика создания компонентов
- 5.1. Выбор родительского класса
- 5.1.2. Создание оконных компонентов
- 5.1.3. Создание графических компонентов
- 5.1.4. Создание подклассов для элементов управления Windows
- 5.1.5. Создание невизуальных компонентов
- 5.2. Создание модуля компонента
- 5.3. Создание свойств, методов и событий
- 5.3.2. Создание методов
- 5.3.3. Создание событий
- 5.4. Тестирование и оформление компонента
- 5.5. Регистрация
- Создание компонентов с помощью утилиты ModelMaker
- 6.1. Этапы работы с ModelMaker
- 6.2. Активизация ModelMaker
- 6.3. Вставка нового класса
- 6.4. Определение новых членов класса
- 6.5. Кодирование методов
- 6.6. Создание модуля компонента
- 6.7. Регистрация и отладка компонента
- 6.8. Совершенствование компонента
- 6.9. Оформление компонента
- 6.9.2. Создание значка
- 6.9.3. Создание справочной службы
- Создание свойств
- 7.1. Особенности свойств
- 7.2. Типы свойств
- 7.3. Публикация наследуемых свойств
- 7.4. Определение нового свойства
- 7.4.2. Доступ к значению свойства
- 7.4.3. Умалчиваемые значения свойств
- 7.5. Индексированные свойства
- 7.6. Свойства-массивы
- 7.7. Свойства-объекты
- 7.8. Свойства-интерфейсы
- 7.9. Взаимодействие с файлом формы
- 7.9.2. Умалчиваемые значения
- 7.9.3. Директива stored
- 7.9.4. Перекрытие метода Loaded
- 7.9.5. Сохранение непубликуемых и нестандартных свойств
- Создание методов
- 8.2. Имена методов
- 8.3. Области видимости методов
- 8.4. Особенности конструкторов и деструкторов
- Создание событий
- 9.1. Природа событий
- 9.1.2. Событие — это свойство
- 9.1.3. Обработчик события — процедура
- 9.2. Стандартные события
- 9.2.2. События для оконных компонентов
- 9.2.3. Изменение обработчиков стандартных событий
- 9.3. Создание нестандартных событий
- 9.3.2. Определение типа обработчика события
- 9.3.3. Создание свойства-события
- 9.3.4. Создание метода диспетчеризации
- 9.4. Обработка сообщений Windows и компонентных сообщений
- 9.4.2. Изменение стандартной обработки сообщений
- 9.4.3. Перехват сообщений
- Тестирование, оформление и регистрация компонента
- 10.1. Тестирование компонента
- 10.1.2. Основные приемы отладки в среде Delphi
- 10.2. Создание значка компонента
- 10.2.2. Заимствование значка
- 10.3. Создание контекстной справки
- 10.3.2. Особенности оформления тем компонентной справки
- 10.3.3. Сноски А и В
- 10.3.4. Создание и компиляция файла проекта
- 10.3.5. Файл содержания справочной службы
- 10.3.6. Регистрация справки в справочной системе Delphi
- 10.4. Регистрация компонента
- Создание редакторов
- 11.1. Создание редакторов свойств
- 11.1.2. Редактирование свойства как текста
- 11.1.3. Редактирование свойства в диалоговом окне
- 11.1.4. Определение атрибутов редакторов свойств
- 11.1.5. Регистрация редакторов свойств
- 11.2. Создание редакторов компонентов
- 11.2.2. Связывание с компонентом умалчиваемого редактора
- 11.2.3. Регистрация редактора
- 11.2.4. Пример редактора компонента
- Особенности компонентов для работы с базами данных
- 12.1. Канал связи с данными
- 12.1.2. Наследники класса TData
- 12.2. Использование каналов
- 12.2.2. Использование канала для отображения данных
- 12.2.3. Использование канала для редактирования данных
- Особенности версии Delphi 8
- 13.1. Пространства имен Borland.VCL.XXXX
- 13.2. Пример создания компонента
- 13.3. Установка компонентов
- 13.4. Об отличиях версий Delphi
- Примеры компонентов
- Невизуальные и псевдовизуальные компоненты
- 14.1. Компонент FarDirExplorer
- 14.1.2. Реализация FarDirExplorer
- 14.1.3. Редактор свойства Folder
- 14.1.4. Тестовая программа FarDirExplorer
- 14.2. Компонент FarFileManager
- 14.2.2. Реализация FarFileManager
- 14.2.2. Редактор свойств DestDir и SourceDir
- 14.2.3. Тестовая программа FarFileManager
- 14.3. Компонент FarDirDialog
- 14.3.2. Реализация FarDirDialog
- 14.4. Компонент FarFormAppearence
- 14.4.2. Реализация FarFormAppearence
- 14.4.3. Редактор компонента
- Визуальные компоненты
- 15.1. Компонент FarProgress
- 15.1.2. Реализация FarProgress
- 15.1.3. Тестовая программа FarProgress
- 15.2. Компонент FarText
- 15.2.2. Реализация FarText
- 15.3. Компонент FarRgnButton
- 15.3.2. Реализация FarRgnButton
- 15.3.3. Редактор свойства Polygon
- 15.3.4. Сохранение полигона в файле формы
- 15.3.5. Тестовая программа FarRgnButton
- 15.4. Компонент FarRunButton
- 15.4.2. Реализация FarRunButton
- 15.4.3. Редактор свойства AppName
- 15.5. Компонент FarColorBtn
- 15.5.2. Реализация FarColorBtn
- 15.6. Компоненты ХХХХАрреаrеnсе
- 15.6.2. Реализация ХХХХАрреаrеnсе
- Компоненты независимых разработчиков
- 16.1. Панели
- 16.1.2. Компонент FloatingToolBar
- 16.1.3. Компонент XToolBar
- 16.1.4. Компонент TexturePanel
- 16.1.5. Компонент IAsemiPanel
- 16.1.6. Компонент SchrinkPanel
- 16.1.7. Компоненты Дж. Рассела
- 16.1.8. Компонент ArtPanel
- 16.1.9. Компонент DsPanel
- 16.1.10. Компоненты Page95Control и Tab95Control
- 16.2. Кнопки, флажки и переключатели
- 16.2.2. Компонент EnhRombButtons
- 16.2.3. Компонент GradBtn автор Martis
- 16.2.4. Компонент GradBtn автор Harm
- 16.2.5. Компоненты HerbBorCheck и HerbBorRadio
- 16.2.6. Компонент HemisphereButton
- 16.2.7. Компонент IconBtn
- 16.2.8. Компонент MovingButton
- 16.2.9. Компонент PopupButton
- 16.2.10. Компонент DCPropCheck
- 16.2.11. Компоненты RangeBox и DBRangeBox
- 16.2.12. Компоненты CheckBox95 и RadioButton95
- 16.2.13. Компонент janRunButton
- 16.2.14. Компонент JCheck
- 16.2.15. Компоненты LbSpeedButton и LbButton
- 16.2.16. Компонент PDJButton
- 16.2.17. Компоненты ktMuitiBevel и ktBevelButton
- 16.2.18. Компонент SpeedButtonRollOver
- 16.2.19. Компонент ShyBtn
- 16.2.20. Компоненты SoftButt и SoftPann
- 16.2.21. Компонент SRColorButton
- 16.2.22. Компоненты TPJMenuSpeedButton, TPJUnkedMenuSpeedButton и TPJLinkedSpeedButton
- 16.3. Компоненты представления даты и времени
- 16.3.2. Компоненты CalendarLighted, FullCalendarLight, DBFullCalendarLight, DBQFullCalendarUght
- 16.3.3. Компоненты из набора HomeGrown Calendar Suite
- 16.3.4. Компонент QtCalendar
- 16.3.5. Компонент VrCalendar
- 16.3.6. Компонент AMCIock
- 16.3.7. Компонент DateDialog
- 16.3.8. Компонент TimeBox
- 16.4. Редакторы
- 16.4.2. Компонент MultiBaseEdit
- 16.4.3. Компоненты HexEditor и HexToCanvas
- 16.4.4. Компонент RIPEdit
- 16.5. Диалоговые окна
- 16.5.2. Компоненты AgOpenDialog и AgSaveDialog
- 16.5.3. Компоненты PBOpenPreviewDialog и PBSavePreviewDialog
- 16.5.4. Компонент HTMLcolorDialog
- 16.5.5. Компонент UserDIg
- 16.6. Метки
- 16.6.2. Компонент Windowtime
- 16.6.3. Компонент LedScreen
- 16.6.4. Компонент GlowLabel
- 16.6.5. Компонент BlinkLabel
- 16.7. Фигуры
- 16.7.2. Компонент jvAirBrush
- 16.7.3. Компонент MultiShape
- 16.8. Формы
- 16.8.2. Компонент MX_FormCaption
- 16.8.3. Компонент AJBFormCaption
- 16.9. Таблицы и сетки
- 16.9.2. Компонент AdvGrid
- 16.9.3. Компонент MGrid
- Литература
| 2011 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2010 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2009 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2008 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2007 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2006 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2005 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2004 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2003 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2002 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2001 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 2000 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 1999 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 |
- Компания по разработке программного обеспечения
- Услуги аутсорсинга в области программирования
- Как продлить срок службы картриджей
- Мошенничество во Всемирной Паутине. Осторожно: фишинг!
- Web-студия
- Как легально поднять уровень индекса цитирования.
- Мы реально сможем помочь вам в управлении предприятием
- Создание сайтов – популяризация вашего замысла
- Свой сайт. Управление ресурсом
- Семантическое ядро сайта или правила подбора ключевых фраз
- Программирование в среде Delphi 8 for .NET
- Практикум по Delphi для решения прикладных задач
- Фундаментальные алгоритмы и структуры данных в Delphi
- Delphi 6. Программирование на Object Pascal
- Delphi и технология COM
- Delphi в шутку и всерьез: что умеют хакеры
- Программирование в Delphi глазами хакера
- Delphi 2005. Секреты программирования
- Искусство создания компонентов Delphi
- Приемы программирования в Delphi на основе VCL
- Программирование баз данных в Delphi 7
- Программирование баз данных в Delphi
- Программирование в среде Delphi
- Программирование в Delphi 7
- Язык SQL в Delphi 5