Sources
Delphi Russian Knowledge Base
DRKB - база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Проблема использования компонентов в Delphi 6 / 7 от предыдущих версий

01.01.2007
Юрий Зотов

Решение в случае ошибок компиляции пакетов типа:

Missing unit 'Proxies.pas'

и

Missing DsgnIntf.pas

1) Сначала заменить

uses DsgnIntf;

на

uses DesignIntf, DesignEditors;

2) Затем добавить DesignIde.dcp в лист требуемых модулей


Переименование модулей не решит проблемы 'Proxies.pas'.

Эта проблема возникает из-за того, что сами компоненты и редакторы свойств помещают в один пакет.

Это нехорошо, но в D5 и ниже проходило, а начиная с D6 уже не проходит.

Пакет разбиваете на два: run-time и design-time.

RT-пакет содержит ТОЛЬКО код самих компонентов и больше НИЧЕГО. Ни один его модуль не должен ссылаться в uses ни на один модуль DT-пакета. В его секции Requires могут содержаться ТОЛЬКО run-time модули VCL.

Компилируется RT-пакет в любой каталог, доступный через пути поиска IDE, либо через переменную системного окружения Path. Инсталлировать в IDE его не нужно.

DT-пакет содержит процедуру Register, иконки компонентов и все design-time редакторы (свойств и компонентов), если такие есть. Любой его модуль может ссылаться в uses на любой модуль из RT-пакета. В его секцию Requires и подключается DesignIDE.dcp. Компилируется он куда угодно и должен инсталлироваться в IDE.

Таким образом, в конечные приложения будут подключаться только модули RT-пакета, в которых нет ссылок на DesignEditors - а тогда не потребуется и Proxies. Кроме того, в конечный проект не будут подтягиваться ненужные в run-time код и ресурсы из DT-пакета.

Previous page:
Установка справки для сторонних компонент под Delphi 2005 и Delphi 2006
Top:
DRKB
Next page:
Работа с ToolsAPI (эксперты и редакторы свойств)