Использование объектных интерфейсов в формах. Галактика 8.10
Модераторы: m0p3e, edward_K, Модераторы
Использование объектных интерфейсов в формах. Галактика 8.10
Добрый день.
Хочу воспользоваться интерфейсом выбора комиссии.
Если в собственных интерфейсах пишу:
#include comission.vih
...
var com : Commission;
com.InitCommission(204);
com.RunWindowSelection(1);
то все прекрасно работает.
Если же пытаюсь использовать его в присоединенных формах, то получаю ошибку загрузки объекта из ресурсного файла (Commission). При этом при компиляции никаких ошибок или предупреждений нет. Вот код:
.declare
#include comission.vih
.enddeclare
....
.begin
var com : Commission;
com.InitCommission(204);
com.RunWindowSelection(1);
end.
Что неправильно? Видел похожую тему годичной давности, но там рецепт так и не предложен.
Хочу воспользоваться интерфейсом выбора комиссии.
Если в собственных интерфейсах пишу:
#include comission.vih
...
var com : Commission;
com.InitCommission(204);
com.RunWindowSelection(1);
то все прекрасно работает.
Если же пытаюсь использовать его в присоединенных формах, то получаю ошибку загрузки объекта из ресурсного файла (Commission). При этом при компиляции никаких ошибок или предупреждений нет. Вот код:
.declare
#include comission.vih
.enddeclare
....
.begin
var com : Commission;
com.InitCommission(204);
com.RunWindowSelection(1);
end.
Что неправильно? Видел похожую тему годичной давности, но там рецепт так и не предложен.
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
В 7.12 в фрм в начале формы после полей сделал инициализацию
без неё тоже ошика вылетала, сейчас работает.
В версии 8.10 вроде инициализация не нужна, но это на випе, в ФРМ не уверен.
Код: Выделить всё
if not LoadvipRef(iDecl,'declension') then
{
message('Не удалось инициализировать объектный интерфейс!');akts.fexit;
}
В версии 8.10 вроде инициализация не нужна, но это на випе, в ФРМ не уверен.
Вих сделал сам из документации. Получилось:
#component "F_COMMON"
#ifndef _Commission_vih_Included
#define _Commission_vih_Included
!-------------------------------------------------------------------------------
ObjInterface ObjCommission;
//Объект для работы с комиссией и ответственными лицами
Procedure InitCommission (In_wTiDk : Word);
//Инициализация комиссии
Procedure InitResponsible (In_wTiDk : Word);
//Инициализация ответственных лиц
Procedure RunWindowSelection (wType : Word);
//Запуск окна выбора и редактирования комиссии
//для комиссий:
//0 - редактирование параметров
//1 - выбор комиссии
//для ответственных лиц
//2 - выбор ответственных лиц
Function GetSelection : Comp;
//Возвращает ссылку на выбранную комиссию // - Selection.nRec
Function SelectionIsValid : Boolean;
//Возвращает true если для текущего TiDk установлена комиссия // - соответствует if (GetSelectionCommission <> comp(0))
Function GetSelectionName : String;
//Возвращает имя установленной комиссии // из Selection.Name, // для соответствующего TiDk, установленного в InitCommission, // или текст о том, что комиссия не установлена // * нужно заменить function isValid_Commission : string; на эту
Function ClearSelection : String;
//Очищает поле выбора комиссии // для соответствующего TiDk, установленного в InitCommission, // или текст о том, что комиссия не установлена
Function GetCommissionChairMan : Boolean;
//Возвращает установлен ли председатель комиссии
Function GetComponentsCount : Word;
//Возвращает количество составляющих, без учёта председателя...
Function GetComponentNRec (wNumber : Word) : Comp;
//Возвращает nRec председателя или члена комиссии
Function GetComponentFIO (wNumber : Word) : String;
//Возвращает ФИО председателя или члена комиссии
Function GetComponentTabN (wNumber : Word) : String;
//Возвращает табельный номер председателя или члена комиссии
Function GetComponentPost (wNumber : Word) : String;
//Возвращает должность председателя или члена комиссии
Function GetComponentsList (wType : Word) : String;
//Возвращает председателя комиссии или список членов комиссии
end;
!-------------------------------------------------------------------------------
VipInterface Commission implements ObjCommission;
!-------------------------------------------------------------------------------
#end // _Commission_vih_Included
В обычных интерфейсах работает замечательно. А подключаю либо ObjCommission либо Commission. Не тот не другой не работают в frm.
#component "F_COMMON"
#ifndef _Commission_vih_Included
#define _Commission_vih_Included
!-------------------------------------------------------------------------------
ObjInterface ObjCommission;
//Объект для работы с комиссией и ответственными лицами
Procedure InitCommission (In_wTiDk : Word);
//Инициализация комиссии
Procedure InitResponsible (In_wTiDk : Word);
//Инициализация ответственных лиц
Procedure RunWindowSelection (wType : Word);
//Запуск окна выбора и редактирования комиссии
//для комиссий:
//0 - редактирование параметров
//1 - выбор комиссии
//для ответственных лиц
//2 - выбор ответственных лиц
Function GetSelection : Comp;
//Возвращает ссылку на выбранную комиссию // - Selection.nRec
Function SelectionIsValid : Boolean;
//Возвращает true если для текущего TiDk установлена комиссия // - соответствует if (GetSelectionCommission <> comp(0))
Function GetSelectionName : String;
//Возвращает имя установленной комиссии // из Selection.Name, // для соответствующего TiDk, установленного в InitCommission, // или текст о том, что комиссия не установлена // * нужно заменить function isValid_Commission : string; на эту
Function ClearSelection : String;
//Очищает поле выбора комиссии // для соответствующего TiDk, установленного в InitCommission, // или текст о том, что комиссия не установлена
Function GetCommissionChairMan : Boolean;
//Возвращает установлен ли председатель комиссии
Function GetComponentsCount : Word;
//Возвращает количество составляющих, без учёта председателя...
Function GetComponentNRec (wNumber : Word) : Comp;
//Возвращает nRec председателя или члена комиссии
Function GetComponentFIO (wNumber : Word) : String;
//Возвращает ФИО председателя или члена комиссии
Function GetComponentTabN (wNumber : Word) : String;
//Возвращает табельный номер председателя или члена комиссии
Function GetComponentPost (wNumber : Word) : String;
//Возвращает должность председателя или члена комиссии
Function GetComponentsList (wType : Word) : String;
//Возвращает председателя комиссии или список членов комиссии
end;
!-------------------------------------------------------------------------------
VipInterface Commission implements ObjCommission;
!-------------------------------------------------------------------------------
#end // _Commission_vih_Included
В обычных интерфейсах работает замечательно. А подключаю либо ObjCommission либо Commission. Не тот не другой не работают в frm.
-
- Местный житель
- Сообщения: 2898
- Зарегистрирован: 24 июн 2005, 12:12
- Откуда: Иркутская область
Код: Выделить всё
var com : odeclension;
.............
if not LoadvipRef(com,'Commission') then
{
message('Не удалось инициализировать объектный интерфейс!');
}
Может быть Вих не оригинальный и поменялся? Запросите последний у ТП...