- •Литература
- •Содержание
- •1. Основные понятия ооп
- •2. Программирование для Windows
- •3. Визуальное программирование и среда Delphi
- •Создание приложений в средеDelphi
- •Компоненты общего назначения tMainMenu- главное меню формы (программы)
- •TPopupMenu- вспомогательное (локальное) меню
- •TLabel- метка для отображения текста
- •TEdit-ввод и отображение строки
- •TMemo- ввод и отображение текста
- •TButton- кнопка
- •TBitBtn- кнопка с изображением
- •TSpeedButton- кнопка для инструментальных панелей
- •TCheckBox- независимый переключатель
- •TRadioButton- зависимые переключатели
- •TRadioGroup- группа зависимых переключателей
- •TListBox- список выбора
- •TComboBox- раскрывающийся список выбора
- •TPanel- панель
- •TTabControl- набор закладок
- •TPageControl- набор страниц с закладками
- •4. Особенности языка ооп Object Pascal
- •Процедуры и функции Выход из процедур и фукнций и возврат результата
- •Передача параметров
- •Параметры со значениями по умолчанию
- •Перегрузка функций
- •Динамическое распределение памяти
- •Указатели
- •Операции с указателями
- •Операция @
- •Самоадресуемые записи
- •Динамические массивы Одномерные динамические массивы
- •Многомерные динамические массивы
- •Исключения и их обработка
- •Защита кода зачистки в блокахtry...Finally
- •Защита кода зачистки на уровне модуля — разделfinalization
- •Обработка исключений в блокахtry...Except
- •Последовательность обработки исключений
- •5. Классы и объекты
- •Классы и объекты
- •Инкапсуляция
- •Наследование
- •Полиморфизм
- •Составляющие класса Поля
- •Одноименные методы
- •Свойства
- •События
- •Объявление класса
- •Операции с классами
- •Ссылки на классы
- •TObjectи информация о классах
- •Регистрация и обнаружение классов
- •6. Создание объектов во время выполнения, поиск компонентов
- •Клонирование объектов
- •Поиск компонента
- •Двукратное освобождение объекта
- •7. Построение собственных компонентов
- •Как и для чего следует строить компоненты
- •Общие руководящие принципы
- •Ключевые идеи
- •Компиляция компонентов
- •Отладка компонентов
- •Примечание
- •Примечание
- •Примечание
- •8. Работа с потоками
- •Классы потоковDelphi
- •Файловые потоки
- •Примечание
- •Методы потоков в действии: программаMemoStr
- •Потоки памяти
- •Пример программыMemoryS
- •Примечание
- •Написание заказного класса потока
- •9. Работа с com-объектами, использование серверов ole-автоматизации
Ключевые идеи
Для создания новых компонентов выполняются следующие простые шаги.
1. Из главного меню Delphi выберите Component>New Component.
2. Введите в окно редактирования мастера компонентов Component Wizard (диалоговое окно New Component) имя класса предка, имя нового класса и новое имя модуля файла. Затем щелкните мышью кнопку «Install».
3. В диалоговом окне Install выберите существующий пакет или перейдите на следующую страницу и введите имя и описание нового пакета. Затем нажмите кнопку «ОК».
4. Редактор пакета попросит подтверждения установки пакета и включение компонента. После нажатия кнопки «Yes» редактор пакета инсталлирует компонент и отобразит его в палитре компонентов Delphi.
5. Теперь редактор пакета можно использовать, чтобы открыть исходный текст компонента в редакторе и изменить его или добавить в пакет дальнейшие компоненты, включая дополнительные модули.
Чтобы отменить инсталляцию компонента, удалите его из пакета, где он определен. Можно открыть пакеты для редактирования, используя команду Delphi File>Open. Если необходимо удалить пакет из проекта, используйте команду Project>Options.
Важно подчеркнуть, что файлы библиотеки пакетов — это просто файлы DLL, содержащие код инсталлированных (прокопмилированных) компонентов. Delphi использует этот код во время разработки, но также может использовать на этапе выполнения, если использовать пакеты в распространяемых приложениях. По причинам, анализируемым в следующей главе, на этапе выполнения можно отказаться от использования пакетов. В этом случае для компоновки компонентов в исполняемый файл приложения Delphi потребуются файлы DCU, содержащие оттранслированные коды отдельных модулей.
Типы компонентов
Delphi использует три основных типа компонентов. Хотя, возможно, вам известны различия между семействами компонентов Delphi, сделаем их краткий обзор в виду их фундаментальности. Вот эти типы.
• Невизуальные компоненты отображают пиктограмму при их занесении в форму на этапе разработки, но не появляются на этапе выполнения.
• Визуальные компоненты находятся в форме и имеют позицию и размер. Визуальные компоненты обычно называют элементами управления (controls).
• Элементы управления окнами — это компоненты, находящиеся в окне (инкапсулирующие дескриптор окна). Они составляют самую большую группу.
• Графические средства управления — это безоконные визуальные компоненты. Эти элементы управления отображаются в окне, управляющем ими, а значит, не полагаются на многие свойства операционной системы (функции API Windows нельзя использовать с графическим управлением). Разумное объяснение графических элементов управления состоит в экономии дескрипторов и ресурсов Windows для небольшого ускорения приложения. (Экономия ресурсов Windows — по-прежнему проблема в Windows 95, хотя и меньшая по сравнению с предыдущими версиями.)
В основном, различия между этими компонентами — следствие их размещения в иерархии библиотеки визуальных компонентов VCL (см. рис. 5.1). Базовый класс TComponent предоставляет общий каркас, а подклассы типа TGraphicControl и TWinControl — основу всех графических и оконных элементов. Графические возможности, доступные в классе TGraphicControl, опущены в настраиваемом классе TWinControl. Однако производный класс TCustomControl восполняет этот недостаток.