Статическое связывание |
Для статического связывания используется конструкция:
<статическое встраивание интерфейса> ::= embedded <ID_панели> interface [ <Имя_интерфейса> | <Интерфейсная_переменная>[.<окно интерфейса>]]; show at (,,,,); cache = slave | onDemand | preload; end;
Интерфейсная переменная (если она используется) должна быть описана.
Если описание вставки выполнено через имя интерфейса, то для каждой области будет загружен свой экземпляр. Если нужен один экземпляр, - используйте интерфейсную переменную. Если интерфейсная переменная на момент активизации области не инициализирована, то будет вызвана функция LoadVipInterface.
Директива cache позволяет управлять временем жизни встроенного интерфейса:
slave - встроенный интерфейс загружается при визуализации панели и уничтожается когда панель становится невидимой;
onDemand - встроенный интерфейс загружается при визуализации панели и уничтожается вместе с контейнером (по умолчанию рекомендуется);
preload - встроенный интерфейс создается и уничтожается вместе с контейнером.
Пример.
var v1 : aktUsl; . . . // вставка окна w1 интерфейса aktUsl в область scOne embedded scOne interface aktUsl.w1; end; // вставка главного окна интерфейса aktUsl embedded scOne interface v1; end; // вставка окна w1 интерфейса aktUsl embedded scTwo interface v1.w1; end;
Для последних двух случаев будет использован один экземпляр интерфейса aktUsl.
Функция Assigned(var aIfcVar) позволяет определить инициализирована ли интерфейсная переменная.