Delphi

Создание delphi компонентов: Урок 90 — Создание компонентов

Новинки IT-индустрии, обзоры и тесты компьютеров и комплектующих

  • ПК и комплектующие
    • Настольные ПК и моноблоки
    • Портативные ПК
    • Серверы
    • Материнские платы
    • Корпуса
    • Блоки питания
    • Оперативная память
    • Процессоры
    • Графические адаптеры
    • Жесткие диски и SSD
    • Оптические приводы и носители
    • Звуковые карты
    • ТВ-тюнеры
    • Контроллеры
    • Системы охлаждения ПК
    • Моддинг
    • Аксессуары для ноутбуков
  • Периферия
    • Принтеры, сканеры, МФУ
    • Мониторы и проекторы
    • Устройства ввода
    • Внешние накопители
    • Акустические системы, гарнитуры, наушники
    • ИБП
    • Веб-камеры
    • KVM-оборудование
  • Цифровой дом
    • Сетевые медиаплееры
    • HTPC и мини-компьютеры
    • ТВ и системы домашнего кинотеатра
    • Технология DLNA
    • Средства управления домашней техникой
  • Гаджеты
    • Планшеты
    • Смартфоны
    • Портативные накопители
    • Электронные ридеры
    • Портативные медиаплееры
    • GPS-навигаторы и трекеры
    • Носимые гаджеты
    • Автомобильные информационно-развлекательные системы
    • Зарядные устройства
    • Аксессуары для мобильных устройств
  • Фото и видео
    • Цифровые фотоаппараты и оптика
    • Видеокамеры
    • Фотоаксессуары
    • Обработка фотографий
    • Монтаж видео
  • Программы и утилиты
    • Операционные системы
    • Средства разработки
    • Офисные программы
    • Средства тестирования, мониторинга и диагностики
    • Полезные утилиты
    • Графические редакторы
    • Средства 3D-моделирования
  • Мир интернет
    • Веб-браузеры
    • Поисковые системы
    • Социальные сети
    • «Облачные» сервисы
    • Сервисы для обмена сообщениями и конференц-связи
    • Разработка веб-сайтов
    • Мобильный интернет
    • Полезные инструменты
  • Безопасность
    • Средства защиты от вредоносного ПО
    • Средства управления доступом
    • Защита данных
  • Сети и телекоммуникации
    • Проводные сети
    • Беспроводные сети
    • Сетевая инфраструктура
    • Сотовая связь
    • IP-телефония
    • NAS-накопители
    • Средства управления сетями
    • Средства удаленного доступа
  • Корпоративные решения
    • Системная интеграция
    • Проекты в области образования
    • Электронный документооборот
    • «Облачные» сервисы для бизнеса
    • Технологии виртуализации

Наш канал на Youtube

Архив изданий

19991234567891011
12
2000123456789101112
2001123456789101112
20021234567891011
12
2003123456789101112
2004123456789101112
2005123456789101112
2006123456789101112
2007123456789101112
2008123456789101112
2009123456789101112
2010123456789101112
2011123456789101112
2012
123456789101112
2013123456789101112

  • О нас
  • Размещение рекламы
  • Контакты

Популярные статьи

Моноблок HP 205 G4 22 AiO — одно из лучших решений для офисной и удаленной работы

В настоящем обзоре мы рассмотрим модель моноблока от компании HP, которая является признанным лидером в производстве компьютеров как для домашнего использования, так и для офисов.

Моноблок HP 205 G4 22 — модель нового семейства, которая построена на базе процессоров AMD последнего поколения и отличается неплохой производительностью вкупе с привлекательной ценой

Logitech G PRO X Superlight — легкая беспроводная мышь для профессиональных киберспортсменов

Швейцарская компания Logitech G представила беспроводную игровую мышь Logitech G PRO X Superlight. Новинка предназначена для профессиональных киберспортсменов, а слово Superlight в ее названии указывает на малый вес этой модели, который не превышает 63 г. Это почти на четверть меньше по сравнению с анонсированным пару лет тому назад манипулятором Logitech G PRO Wireless

Материнская плата для домашнего майнинга ASRock h210 Pro BTC+

Как показало недавнее исследование Кембриджского университета — количество людей, которые пользуются сегодня криптовалютами, приближается к размеру населения небольшой страны и это только начало, мир меняется. Поэтому компания ASRock разработала и выпустила в продажу весьма необычную материнскую плату — h210 PRO BTC+, которую мы и рассмотрим в этом обзоре

Верхняя панель клавиатуры Rapoo Ralemo Pre 5 Fabric Edition обтянута тканью

Компания Rapoo анонсировала в Китае беспроводную клавиатуру Ralemo Pre 5 Fabric Edition. Новинка выполнена в формате TKL (без секции цифровых клавиш) и привлекает внимание оригинальным дизайном. Одна из отличительных особенностей этой модели — верхняя панель, обтянутая тканью с меланжевым рисунком

Изогнутый экран монитора MSI Optix MAG301 CR2 обеспечит максимальное погружение в игру

Линейку компьютерных мониторов MSI пополнила модель Optix MAG301 CR2, адресованная любителям игр. Она оборудована ЖК-панелью типа VA со сверхширокоформатным (21:9) экраном изогнутой формы (радиус закругления — 1,5 м). Его размер — 29,5 дюйма по диагонали, разрешение — 2560×1080 пикселов

Комплект SilverStone MS12 позволяет превратить SSD типоразмера M.2 2280 в портативный накопитель

Каталог продукции компании SilverStone пополнил комплект MS12. Он позволяет создать портативный накопитель на базе стандартного SSD типоразмера M.2 2280 с интерфейсом PCI Express

SSD-накопители ADATA XPG Spectrix S20G сочетают производительность с эффектным дизайном

Компания ADATA Technology анонсировала твердотельные накопители серии XPG Spectrix S20G. Они предназначены для оснащения игровых ПК и, как утверждают их создатели, сочетают высокую производительность и эффектный внешний вид

Видеокарта ASUS GeForce RTX 3070 Turbo оснащена системой охлаждения с одним центробежным вентилятором

Линейку видеоадаптеров ASUS на базе графических процессоров NVIDIA пополнила модель GeForce RTX 3070 Turbo (заводской индекс TURBO-RTX3070-8G), предназначенная для оснащения игровых ПК. Одной из особенностей новинки является конструкция системы охлаждения

КомпьютерПресс использует

100 компонентов Delphi — Создание шаблонов и групп компонентов

100 компонентов Delphi — Создание шаблонов и групп компонентов

Вы можете использовать страницы библиотеки для включения в них каких-то разработанных вами шаблонов компонентов или совокупностей компонентов. В последующих главах будут рассмотрены различные компоненты. В каждом из них в процессе проектирования задается некоторое множество значений свойств и пишутся обработчики событий. Причем очень часто компоненты с одинаковыми свойствами и с одинаковыми или почти одинаковыми обработчиками кочуют из приложения в приложение. Например, стандартные меню с одними и теми же разделами имеются в очень многих приложениях. Причем меню должны быть именно стандартными, с одними и теми же надписями в разделах, с одними и теми же «горячими» клавишами и т.п. Такая стандартизация — одно из основных требований, предъявляемых к приложениям Windows. Кроме того каждое меню по современным требованиям должно сопровождаться инструментальной панелью с быстрыми кнопками, дублирующими основные разделы меню. Эти быстрые кнопки должны иметь привычные пользователю пиктограммы, должны сопровождаться всплывающими ярлычками подсказок. Наконец, любое меню, имеющее разделы работы с файлами должно вызывать стандартные диалоги Windows открытия и закрытия файлов.

Все это легко создать в Delphi, но для этого надо перенести на форму ряд компонентов (см. пример на рис. 2.3): MainMenu — главное меню (см. раздел 6.1), инструментальную панель ToolBar (см. раздел 7.4) и создать на ней множество быстрых кнопок, различные стандартные диалоги (см. главу 7), список изображений для кнопок и разделов меню ImageList (см. раздел 9.3), диспетчер событий ActionList (см. раздел 9.2). В каждом из этих компонентов надо задать различные свойства, связать компоненты друг с другом, написать обработчики событий. Это немалая работа. И обидно, если начиная в дальнейшем похожие приложения придется выполнять ее снова и снова. Вот тут и могут помочь шаблоны, внесенные вами в библиотеку компонентов.

Рис. 2.3
Пример меню с инструментальной панелью и стандартными диалогами

Чтобы сохранить в библиотеке как шаблон компонент или группу компонентов вместе со всеми значениями свойств компонентов и обработчиками событий, надо сделать следующее.

  1. Задайте значения всех необходимых свойств в компонентах, которые вы хотите оформить как шаблон. Напишите требуемые обработчики событий.
  2. Выделите на форме группу ваших компонентов. Если компоненты расположены непосредственно на форме, то для выделения их как группы достаточно построить курсором мыши рамку, охватывающую или хотя бы пересекающую все эти компоненты. Так можно выделить в группу компоненты, расположенные рядом. Если компоненты расположены не рядом друг с другом или они расположены на какой-то панели, то применима другая методика: нажмите клавишу Shift и, не отпуская ее, щелкните поочередно на каждом компоненте, включаемом в группу.
  3. Выполните команду Component | Create Component Template (создать шаблон компонента). Перед вами откроется диалоговое окно Component Template Information (рис. 2.4). В его верхнем окошке редактирования Component Name вы можете задать имя шаблона. Это имя будет появляться на ярлычке подсказки, если пользователь задержит курсор мыши над пиктограммой вашего шаблона в палитре библиотеки. На рис. 2. 4 это имя — TMyMenu. В выпадающем списке в средней части окна вы можете выбрать страницу библиотеки визуальных компонентов, на которой хотите разместить пиктограмму шаблона. Вы можете также указать новое имя (Мои шаблоны на рис. 2.4) и тогда в библиотеке визуальных компонентов будет создана новая страница с этим именем. Можно также изменить пиктограмму данного компонента (кнопка Change). Пиктограмма, если вы ее хотите сменить, должна быть подготовлена заранее в виде файла .bmp размером 24 на 24.
  4. После выполнения всех описанных операций щелкните на кнопке ОК.

И это все. Ваш шаблон появится в библиотеке. Вы можете убедиться в этом, посмотрев на указанную вами страницу библиотеки. Попробуйте провести подобный эксперимент с компонентами любого приложения. Например, с элементарным приложением, рассмотренным в разделе 1.2 (рис. 1.4) и содержащим всего два компонента: кнопку и метку, в которую при щелчке на кнопке пишется какой-то текст. Оформите эти компоненты как шаблон и занесите в библиотеку. Затем откройте новое приложение и перенесите на форму из библиотеки несколько экземпляров шаблона. В вашем проекте появится несколько кнопок и несколько меток, причем каждая кнопка будет управлять своей меткой. Поскольку метки будут иметь разные имена, то, посмотрев код модуля, вы увидите, что Delphi учла это: операторы обработчиков щелчков на разных кнопках различаются именами кнопок.

Рис. 2.4
Диалоговое окно задания информации о шаблоне

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


как создать — SOFTACOM

Алекс А. Контент менеджер

Если вы знакомы с процессом разработки приложений Delphi, то наверняка знаете, что он основан на методологии компонентов, которая обеспечивает плавное и быстрое создание приложений. Такая методология предполагает, что приложения Delphi состоят из отдельных «кирпичиков», известных как компоненты.

Компоненты Delphi можно классифицировать по разным параметрам. Например, исходя из типа представления, мы можем назвать визуальные и невизуальные компоненты. В первую группу входят те компоненты, которые будут иметь представление в пользовательском интерфейсе, такие как кнопки, изображения и другие визуальные элементы. Те элементы, которые не будут представлены в пользовательском интерфейсе, относятся ко второй группе.

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

Библиотека визуальных компонентов: что это?

Библиотека визуальных компонентов (VCL) предоставляет широкий спектр невизуальных и визуальных элементов управления и компонентов, которые разработчики используют для создания практически любого пользовательского интерфейса, который они хотят. Основными элементами этой библиотеки являются объекты, и все элементы управления и компоненты основаны на объектах.

Компоненты, представленные в этой библиотеке, позволяют создавать собственные приложения Windows.

Стандартный набор компонентов, доступных в VCL, состоит из всех элементов управления, предлагаемых в среде пользовательского интерфейса Windows. Включенные компоненты: правки, меню, кнопки и другие. Кроме того, VCL также содержит некоторые дополнительные компоненты, не предусмотренные инфраструктурой пользовательского интерфейса Windows. Являясь расширением стандартного набора, они предлагают дополнительные функциональные возможности.

Пользовательский визуальный компонент для Delphi: когда он вам нужен?

Если вы создаете приложения Delphi, вы можете использовать существующие компоненты, предоставляемые Embarcadero или любыми другими сторонними поставщиками. Однако иногда можно увидеть, что те компоненты, которые доступны на рынке, в вашем случае не актуальны. В такой ситуации хорошей новостью является то, что вы можете самостоятельно создать визуальный компонент и обеспечить тот функционал, которого не хватает в существующих.

Но это не единственный случай, когда разработка собственного компонента может быть хорошей идеей.

Например, вы можете сделать это, если хотите повторно использовать логику приложения, а также код для своих будущих проектов.

Создавая собственные компоненты, вы также можете поставлять их другим разработчикам с исходным кодом на коммерческой основе.

Как создать пользовательский визуальный компонент для Delphi?

Итак, допустим, вы решили самостоятельно собрать визуальную составляющую. Что вы должны знать, прежде чем начать?

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

  1. Во-первых, будут различаться конечные пользователи. Компоненты будут использоваться разработчиками, а не людьми, на которых нацелены ваши приложения.
  2. Существует три разных интерфейса компонентов. Приложение имеет только один интерфейс времени выполнения. В дополнение к этому компонент также имеет интерфейсы времени разработки и разработчика.
  3. Компоненты должны поддерживать высокий уровень гибкости, чтобы разработчики могли использовать их так, как им нужно.
  4. Написание компонентов — это в высокой степени объектно-ориентированный и невизуальный процесс, который требует глубоких специальных знаний, включая хорошее понимание особенностей VCL.

Хотя может показаться, что создать собственную визуальную составляющую очень сложно, это не так. Это не более чем просто программирование.

Существует несколько способов создания компонентов, в том числе изменение существующих, получение из уже имеющихся компонентов и их создание с нуля.

Компоненты — это классы, происходящие от других типов классов. Когда дело доходит до визуальных компонентов, они в основном происходят от любого из следующих компонентов:

  • TGraphicControl
  • TWinControl
  • TCustomControl

Основные шаги, которые необходимо выполнить всякий раз, когда вы хотите создать компонент:

  • для создания модуля для него;
  • для создания нового компонента из существующего типа;
  • для добавления методов, свойств, событий;
  • для регистрации этого компонента в интегрированной среде разработки;
  • , чтобы создать для него растровое изображение;
  • для сборки пакета, который обеспечит установку компонента в IDE;
  • для создания файла справки, который будет содержать инструкции для разработчиков, которые будут использовать этот компонент (этот шаг необязателен, поэтому его можно не выполнять, если считаете его ненужным).

Одним из самых простых способов создания простого визуального компонента является использование мастера создания компонентов. Этот инструмент значительно упрощает начальные шаги по созданию компонентов. Чтобы инициировать процесс, вам необходимо указать ряд параметров, включая класс, из которого будет создан ваш компонент, имя класса, модуль, в котором будет создан компонент, и некоторые другие.

Если вы собираетесь написать визуальный компонент, вам необходимо сделать следующее:

  1. Запустить мастер создания нового компонента.
    Есть 2 способа сделать это. Первый предполагает выбор Компонента и Нового Компонента.
    Или вы можете найти «Файл» > «Создать» > «Другое», затем выбрать «Проекты Delphi», перейти на страницу «Файлы Delphi» и выбрать «Компонент».
  2. Для указания данных в поле мастера создания нового компонента.
  3. Для выбора типа вашего будущего компонента (Delphi) на странице Personality, Framework and Platform.
  4. Чтобы выбрать класс, который вы хотите использовать для наследования, на странице Компонент-предок.
  5. Чтобы указать имя создаваемого класса компонента. Это нужно сделать на странице компонента.
  6. Чтобы перейти на страницу палитры и указать категорию палитры инструментов, в которую должен быть установлен ваш компонент.
  7. Указать название блока вашего компонента в соответствующем поле, а также предоставить данные для поля Путь поиска, если это применимо
  8. Чтобы нажать кнопку Готово. Для размещения вашего компонента в пакете, независимо от того, новый он или уже существующий, необходимо нажать «Компонент», а затем «Установить».
  9. Чтобы указать пакет в диалоговом окне, нажмите кнопку ОК. Будет создан новый блок.

Более подробный пошаговый план с дальнейшими этапами вы можете найти на веб-сайте, управляемом и поддерживаемом Embarcadero.

Как видите, можно создать пользовательский компонент самостоятельно, но есть и возможность сэкономить свое время и довериться в этой ситуации профессионалам. В Softacom мы предлагаем широкий спектр услуг по разработке компонентов, включая их создание, миграцию, усовершенствование и реинжиниринг. Если у вас есть какие-либо вопросы или идеи, которые уже ждут своей реализации, просто свяжитесь с нашей командой.

Написание компонентов Delphi — создание и установка пакетов

Написание компонентов Delphi — создание и установка пакетов

Написание компонентов Delphi — создание и установка пакетов

Если вы хотите, чтобы ваши компоненты присутствовали во время разработки (размещены на панели инструментов и имели возможность задавать параметры через инспектор объектов), то их необходимо поместить в пакет и установить в IDE.

Хотя это нигде не задокументировано, вам нужно знать что пакеты могут быть установлены только в той же версии Delphi, которая использовалась для их компиляции. (Файлы *.dcu зависят от версии.) Это означает, что если вы поделитесь каким-либо компонентом

  • либо вы публикуете исходный код (поэтому его можно установить в любой версии)
  • или вы компилируете пакет в каждой версии Delphi (включая те, которые еще не выпущены)

Конечно, это поднимает вопрос о том, как сделать компоненты доступен в С++ Builder. (Может быть, я разберусь с этим позже.)

Установка компонентов — Пример ручной установки с одним каталогом, Отладка
Создание пакета | Создание коллекции пакетов
Поддержка нескольких версий Delphi | использованная литература


Установка компонентов

Можно подумать, что это где-то задокументировано. (Вообще-то в справке содержится значительное количество информации по этому поводу. Однако его очень трудно найти и понять.)

(в хелпе можно попробовать Установка пакетов компонентов . Однако, в нем не упоминается требуемый файл ресурсов. Чтобы найти это, выполните поиск в справке установка компонентов , Выбрать Компиляция компонентов в пакеты , и нажмите на Установка пакетов компонентов .)

Чтобы использовать модуль в другой программе, все, что вам нужно, это файл *.dcu (скомпилированный модуль Delphi). С компонентами немного сложнее — их нужно зарегистрировать чтобы их значки отображались на панели инструментов, и их нужно выполнить во время разработки, чтобы они могли нарисовать себя и сделать присвоение соответствующего имущества.

Для этого вам понадобятся как минимум 2 файла в дополнение к файлам *.dcu — PackageName.bpl и PackageName.dcp. Если какой-либо из включенных модулей включает файл ресурсов (*.res или *.dcr), тогда все эти файлы также будут необходимы. (См. Создание пакета для их создания.)

PackageName.dpk, PackageName.dcu и *.pas файлы, включенные в пакет, не нужно распространять. (Они используются для сборки пакета, они не нужны для его использования.)

    Добав. Описание Комментарий
    пас Паскаль исходный код Не нужно распространять, но необходимо пройти через код во время отладки
    ДКУ Скомпилированный модуль Delphi По одному на каждый pas-файл. Должен распространяться, если exe не вызывает связанный bpl-файл (dll-файл). ( Project/Options…/Packages/Build with runtime packages отключен.)

    Существует также файл dcu, связанный с файлом dpk. Этот не должен распространяться.

    баррель Библиотека пакетов Borland dll времени выполнения, необходимо распространять. Также используется, когда Project/Options…/Packages/Build with runtime packages включен.
    дкп Скомпилированный пакет Delphi Должен распространяться, используется во время разработки, содержит время разработки код для всех dcu-файлов
    dpk Пакет Delphi Исходный файл, определяющий пакет. Создать через Файл/Новый…/Новый/Пакет .
    шт. Редактор коллекции пакетов Исходный файл, используемый для определения файла dpc.
    дпк Коллекция пакетов Delphi Это набор файлов, необходимых для установки одного или нескольких пакетов. Создайте это с помощью Tools / Package Collection Editor .
    HLP
    TOC
    CNT
    Файл справки по компоненту
    Меню содержимого справки Borland
    Меню содержимого справки MS
    Предоставляет контекстную справку для компонента

При перемещении пакета на другую машину скопируйте

    PackageName. bpl и PackageName.dcp
из Machine1\Delphi5\Projects\bpl на Machine2\Delphi5\Lib .

(Это каталоги по умолчанию. На самом деле я использую разные каталоги и модифицирую Delphi, чтобы он мог Найди их. См. Инструменты /Параметры среды…/Библиотека .)

Также скопируйте файл ресурсов времени разработки

    PackageName.dcr
в каталог Delphi lib. (Если вы используете файл *.res, убедитесь, что он не содержит MAINICON и не содержит никаких «удаленных» значков.)

Затем Установите пакет, используя

    Компонент/Установочные пакеты
( Установить также является кнопкой в ​​диалоговом окне Пакет .) Установка включает кнопки компонентов на палитре инструментов компонентов.

Примечания:

  • Файловые ресурсы *.bpl (библиотека пакетов Borland) могут быть прочитаны Хакер ресурсов.
  • dcl_xxx — библиотека компонентов времени разработки, xxx должен идентифицировать вас или вашу компанию
  • Ваши файлы dcl_xxx. bpl ссылаются на vcl50.bpl.
  • Файлы *.dcp и *.dcu должны находиться в пути к библиотеке Delphi.
  • Если файл *.dpc (набор пакетов) присутствует, он содержит другие файлы (dcp, dcu, bpl). Поэтому нужен только этот файл. (Обратите внимание, что dpc dcp.)
  • Чтобы добавить компонент в существующий пакет,
    • Выберите Файл / Открыть… / *.dpk
    • Добавьте соответствующие исходные файлы
    • Пресс-компиляция


Пример ручной установки с одним каталогом

Это предполагает, что у вас уже есть пакет и необходимые файлы справки. Также предполагается, что вы хотите установить все связанные файлы в один каталог (не обязательно лучший подход) вместо того, чтобы разбрасывать его, как предлагает Borland (имеет некоторые преимущества).

  • В C:\Program Files\Borland\Delphi5 создайте каталоги Packages\[PackageName]
  • Войдите в каталог через Инструменты / Параметры среды. ../Библиотека/Путь к библиотеке
    Я использовал — $(DELPHI)\Packages\[PackageName]
  • Скопируйте [PackageName].bpl и [PackageName].dcp в новый каталог
  • Установить пакет через Component / Install Packages…
    • Нажмите кнопку Добавить
    • Выберите файл bpl (каталог по умолчанию — C:\Program Files\Borland\Delphi5\Projects )
    • В этот момент компонент(ы) будет виден на панели инструментов и может быть размещен в форме… однако форма не будет компилироваться
  • Для каждого файла *.pas, указанного в [PackageName].dpk, скопируйте соответствующий файл *.dcu в новый каталог
  • Скопируйте каждый файл *.dcr, указанный в [PackageName].dpk в новый каталог
  • Если есть какие-либо действия , скопируйте соответствующие файлы *.dfm в новый каталог (они содержат значки)
  • Скопируйте файлы справки (hlp, toc, cnt) в новый каталог и установить (связать) их


Пакеты времени выполнения

В общем, я предпочитаю создавать полные исполняемые файлы, которые не используют любые dll, кроме тех, которые предоставляются Windows (и даже это довольно рискованно). Однако если Project/Options…/Packages/Build with runtime packages отмечен, то используется файл [PackageName].bpl (во время выполнения) вместо файлов *.dcu (во время компиляции). Поскольку (на данный момент) файл *.bpl отсутствует в пути поиска windows , ваша программа не будет работать, пока вы не добавите ее в путь.

Вы можете поместить копию файла *.bpl в один из этих каталогов.

или вы можете изменить вашу систему путь поиска (Я не рекомендую это).

В одном тестовом примере (только простая форма) exe-файл был 15 КБ с использованием bpl, и 356 КБ с использованием DCU. (В другом тесте просто форма и никаких компонентов, было 14 кб и 298 кб.)


Отладка

При разработке компонентов обязательно наличие файла *.dcu в пути поиска

    Проект/Опции…/Каталоги/Путь поиска

Чтобы отладить компонент (установить точки останова), файлы *.dcu и *.pas должны находиться в одном каталоге или, по крайней мере, исходный файл должен быть в пути источника отладки (Проект /Опции. ../Каталоги ).

Для пошагового выполнения кода vcl файлы *.dcu уже находятся в пути поиска. Поэтому вам нужно только включить файлы *.pas в Delphi5\Источник\Vcl в пути источника отладки.

Похоже, что между машинами может быть небольшая разница. Сегодня (5-2003) мне пришлось включить использование Debug DCU чтобы пройтись по файлам VCL — Project/Options…/Compiler/Use Debug DCU — и Delphi5\Source\Vcl НЕ было в исходном пути отладки. Я не знаю, как я мог пройти через VCL раньше.


Создание пакета

Чтобы поместить компонент на панель инструментов, вам нужно создать пакет.

Определение пакета хранится в виде простого текста в файле dcl_xxx50.dpk. Вы можете добавить дополнительные компоненты, отредактировав и перекомпилировав этот файл. (По соглашению я называю файлы пакетов как dcl_[package_ID][Delphi_Version] — dcl — скомпилированная библиотека Delphi. )

По умолчанию ваши файлы *.bpl и *.dcp помещаются в

    C:\Program Files\Borland\Delphi5\Projects\Bpl
     
    В общем, это хорошо, потому что он уже находится в нужном пути определения. Однако я предпочитаю хранить все, что связано с проектом. в одном дереве каталогов. В связи с этим предлагаю изменить
      Проект/Опции.../Каталоги/Условия/Каталог вывода модуля
      Проект/Параметры.../Каталоги/Условия/Каталог вывода BPL
      Проект/Параметры.../Каталоги/Условия/Каталог вывода DCP
       
      указать в другом месте. ( Выходной каталог BPL недоступен в Delphi 6, но, похоже, управляется через Выходной каталог DCP .) Я предлагаю дерево что-то вроде
        dcl_xxx Readme.txt Как установить пакет
        dcl_xxx\Справка *.hlp, *.cnt, *.toc
        dcl_xxx\Source *.pas, *.dfm *.dfm имеет значки действий
        dcl_xxx\Lib_50 *.dcu, *.bpl, *.dcp, *.dfm, dcl_xxx50.dpk Файлы, зависящие от версии
        dcl_xxx\Lib_60 *.dcu, *.bpl, *.dcp, *.dfm, dcl_xxx60. dpk Файлы, зависящие от версии
         

        Я также использовал эту структуру

          dcl_xxx50 *.dcu, *.bpl, *.dcp, *.dfm, Readme.txt Файлы для конкретной версии
          dcl_xxx50\Справка *.hlp, *.cnt, *.toc
          dcl_xxx50\Source *.pas, *.dfm *.dfm имеет значки действий
           
          Это позволит вам заархивировать дерево и распространять файл меньшего размера.

          не предлагаю использовать

            Инструменты/Параметры среды.../Библиотека/Каталог вывода BPL
            Инструменты/Параметры среды.../Библиотека/Выходной каталог DCP
             
            изменить выходные каталоги потому что это повлияет на все проекты… и только конкретный проект должен быть назначен каталогу что названо в его честь.

            Примечание: В Delphi 5 выходные пути нельзя задать с помощью меню Delphi. Вместо этого вам нужно вручную отредактировать dcl_xxx50.dof (хранится в формате файла ini).

              [Каталоги]
              ВыходнойКанал=
              UnitOutputDir=..\Lib_50
              PackageDLLOOutputDir=. .\Lib_50
              PackageDCPOutputDir=..\Lib_50
               
              Я проверил это с относительными путями, как показано выше.


              Создание коллекции пакетов

              Коллекция пакетов может содержать несколько пакетов. Коллекция пакетов содержит необходимые файлы *.dcu. и необязательные файлы *.pas и *.res. Он также указывает установщику, куда поместить файлы.

              Однако, поскольку результирующий файл превышает 2 МБ, и распространяет файл (vcl50.bpl), который никогда (ИМХО) не должен распространяться, Я не предлагаю использовать это. (для установки пакета требуется vcl50.bpl… но он либо уже находится на машине разработчика, либо у пользователя неправильная версия Delphi. С другой стороны, vcl50.bpl требуется на компьютере конечного пользователя. если приложение настроено на «Сборка с пакетами среды выполнения». )

              Чтобы создать новую коллекцию, в меню Delphi выберите Инструменты / Редактор коллекции пакетов .

              Идентифицируйте свою коллекцию пакетов под именем автора/поставщика и добавить пару каталогов в список каталогов . Имя каталога — это то, что появляется в полях со списком. Например

                источник - C:\Program Files\BORLAND\Delphi5\Source\mcTools
                dcu - C:\Program Files\BORLAND\Delphi5\Lib\mcTools
                Справка - C:\Program Files\BORLAND\Delphi5\Справка\mcTools
                 

                В редакторе выберите Добавить пакет из меню или панели инструментов. После того, как вы включили пакет, выберите Добавить группу файлов (это очень помогает, если вы назовете свою группу — это даст вам что-то, на что можно щелкнуть позже). Вероятно, у вас должно быть несколько групп — файлы *.dcu являются обязательными, но вы можете сделать исходные файлы необязательными. Нажмите кнопку Auto… , чтобы найти ВСЕ исходные файлы и/или файлы *.dcu. указан в упаковке. Теперь пройдите и удалите все файлы Delphi. (Мои файлы были внизу списка. Я прокрутил вниз и выбрал первый файл Delphi над моими файлами. Затем я прокрутил список до самого верха, удерживая нажатой клавишу Shift, и щелкнул первый файл в списке. Я просто удалил выбранные файлы.)

                  Скомпилировано - 2 256 КБ
                  Не скомпилировано - 280K
                  vcl50.bpl - 1,976K Должен быть способ не распространять это
                   
                  Я попытался удалить vcl50.bpl из пакета — тогда он не скомпилировался.


                  Поддержка нескольких версий Delphi

                  DCU, созданный для одной версии Delphi, не будет работать в другая версия.

                  Правильно — вы должны перекомпилировать свои компоненты для каждой версии Delphi. (Я не помню, чтобы видел это в какой-либо из ссылок.)

                  Я попытался установить компонент, скомпилированный в Delphi 5, в Delphi 6… ошибка сказала, что требуется vcl50.bpl . Так что я нашел это и поместил его в C:\WINDOWS\system32, но несовместим с vcl60.bpl потому что они оба имеют одни и те же объекты.

                  В итоге пришлось перекомпилировать исходники в Delphi 6.

                  В связи с этим я рекомендую вам всегда включать индикатор версии Delphi в имя файла пакета.

                  Это скопировано из справки Delphi 5 (из Развертывание пакетов )

                    Распространение пакетов среди других разработчиков
                      Если вы распространяете пакеты времени выполнения или времени разработки среди других разработчиков Delphi, не забудьте предоставить файлы .DCP и .BPL. Возможно, вы также захотите включить файлы .DCU.
                  цитата> Обратите внимание, что здесь не сказано, что пакеты будут работать только с та же версия Delphi, на котором они скомпилированы.

                  КСТАТИ, Для пакетов Delphi 5 требуется vcl50.bpl , но пакеты Delphi 6 требуют rtl.dcp и иногда vcl.dcp . Когда пакет Delphi 5 автоматически «конвертируется» в Delphi 6, требуется только vcl.dcp . (пойди разберись) Следующие выдержки взяты из различных файлов *.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *