Функция LoadVipRef |
Функция LoadVipRef создает индивидуальный экземпляр указанного ей Vip-интерфейса, и формирует ссылку на ObjInterface того типа, к которому принадлежит переменная типа ссылки. Интерфейсу передаются инициализирующие события cmOnVipLoad и cmOnVipUse.
Функция LoadVipRef всегда создает новую загруженную копию интерфейса.
В случае, если указанный Vip-интерфейс не реализует ObjInterface с именем, который является типом переменной ref, возбуждается исключение ExObjIfcNoImpl.
Проверяется - соответствует ли переменная типа ссылки запрошенной операции. Это означает, что для функции LoadVipRef
Первый параметр обязательно должен быть переменной типа ссылки на objInterface. Если это условие нарушено, то будет возбуждено исключение ExObjIfcBadVar.
function LoadVipRef (var ref : VarOfInterFaceType; str : string) : boolean;
ref - переменная типа ссылки на объектный интерфейс. В результате исполнения функции ссылка получает значение ссылки на указанный объектный интерфейс загруженной копии VIP-интерфейса (если запрошенный VIP-интерфейс реализует данный объектный интерфейс).
str - строковое выражение, задающее имя VIP-интерфейса, который должен быть загружен.
Функция возвращает true, если VIP-интерфейс успешно загружен, иначе false.
Если переменная была инициализирована до вызова функции, то происходит освобождение занятой ссылки.
Если в загружаемом интерфейсе в обработчике cmOnVipLoad выполнился Abort, функция возвращает false. При этом не возникает никаких исключений, а переменной присваивается NullRef.
Исключения:
ExObjIfcBadVar - переменная не является ссылкой на VIP-интерфейс.
ExObjIfcNoLoad - невозможно загрузить интерфейс.
ExObjIfcNoImpl - VIP-интерфейс не реализует нужный OBJ-интерфейс.
Загружается VIP-интерфейс interf1, реализующий объектный интерфейс MyObjInterface1.
........ var a : MyObjInterface1; ........... LoadVipRef (a,'interf1');
Начиная с Атлантис 5.0.02.