Конференция "Компоненты" » Борьба с "интеллектуальной" загрузкой пакетов в D2007
 
  • DrPass © (09.06.08 19:17) [0]
    Коллеги, столкнулся с интересной фичей:
    Если пакет с экспертом проинсталлирован не как Known IDE Packages, а как обычный пакет, Delphi 2007 его грузит "интеллектуально". При первом старте IDE она его сразу загружает, вычитывает его содержимое, где-то у себя отмечает его дату/время модификации. При всех последующих - только по требованию. Т.е. в частности, когда компоненты из этого пакета бросаются на дизайнер. И так до тех пор, пока пакет не будет изменен.

    Это замечательно работает для пакетов, где нет ничего кроме компонент. Но когда в пакете при загрузке выполняются еще какие-либо действия с IDE (создание меню, например), такая загрузка "по требованию" становится помехой.
    Добавить в раздел Known IDE Packages его также нельзя, т.к. на этапе загрузки таких пакетов многие сервисы IDE еще недоступны.
    Вопрос: существует ли какая-то опция у пакета, которая даст IDE Delphi 2007 понять, что его нужно грузить в любом случае при старте IDE, а не при первом обращении к нему?
  • DrPass © (10.06.08 10:33) [1]
    Ладно, рассказываю сам:
    Delphi теперь хранит параметры пакетов в ветке реестра Package Cache\<Имя пакета>. Если там указан параметр Demand Load Package = 1, пакет грузится как раз таким "интеллектуально-ректальным" способом. Если 0, пакет грузится как обычно, сразу. Какой способ выбрать, Delphi решает сама по каким-то своим соображениям при инсталляции пакета.
    НО: на ее выбор можно повлиять, добавив в любой процедуре Register вызов ForceDemandLoadState(dlDisable)
 
Конференция "Компоненты" » Борьба с "интеллектуальной" загрузкой пакетов в D2007
Есть новые Нет новых   [134464   +62][b:0][p:0]