-
Коллеги, столкнулся с интересной фичей: Если пакет с экспертом проинсталлирован не как Known IDE Packages, а как обычный пакет, Delphi 2007 его грузит "интеллектуально". При первом старте IDE она его сразу загружает, вычитывает его содержимое, где-то у себя отмечает его дату/время модификации. При всех последующих - только по требованию. Т.е. в частности, когда компоненты из этого пакета бросаются на дизайнер. И так до тех пор, пока пакет не будет изменен.
Это замечательно работает для пакетов, где нет ничего кроме компонент. Но когда в пакете при загрузке выполняются еще какие-либо действия с IDE (создание меню, например), такая загрузка "по требованию" становится помехой. Добавить в раздел Known IDE Packages его также нельзя, т.к. на этапе загрузки таких пакетов многие сервисы IDE еще недоступны. Вопрос: существует ли какая-то опция у пакета, которая даст IDE Delphi 2007 понять, что его нужно грузить в любом случае при старте IDE, а не при первом обращении к нему?
-
Ладно, рассказываю сам: Delphi теперь хранит параметры пакетов в ветке реестра Package Cache\<Имя пакета>. Если там указан параметр Demand Load Package = 1, пакет грузится как раз таким "интеллектуально-ректальным" способом. Если 0, пакет грузится как обычно, сразу. Какой способ выбрать, Delphi решает сама по каким-то своим соображениям при инсталляции пакета. НО: на ее выбор можно повлиять, добавив в любой процедуре Register вызов ForceDemandLoadState(dlDisable)
|