Проблемка с запуском интерфейса

Приемы и подходы, обмен опытом

Модераторы: Screw, larin

Ответить
shplint
топ-софт
Сообщения: 14
Зарегистрирован: Вт, 05/05/2009 07:47
Имя Фамилия: Виктор Носов
Откуда: Галактика-Урал

Проблемка с запуском интерфейса

Сообщение shplint »

Компилирую в support присоединенку, в которой вызывается интерфейс. Если при вызове указываю компоненту RunInterface('L_Sklad::iPrnShowSchet26', накладная_нрек, '', Kredit, '', '', '', '') - то вылетает Runtime error 216, если компоненту не ставлю, то компиляция проходит, но при вызове формы в галактике появляется предупреждение, что интерфейс не найден. В чем может быть проблема?
vadim
топ-софт
Сообщения: 197
Зарегистрирован: Чт, 06/09/2007 17:38
Имя Фамилия: Вадим Володько
Откуда: ТопСофт
Контактная информация:

Re: Проблемка с запуском интерфейса

Сообщение vadim »

Думаю (т.е. намекаю), что удачным ходом с Вашей стороны было бы приаттачить к сообщению архив с проблемной формой, а также указать, какая версия Галактики и инструментария?
shplint
топ-софт
Сообщения: 14
Зарегистрирован: Вт, 05/05/2009 07:47
Имя Фамилия: Виктор Носов
Откуда: Галактика-Урал

Re: Проблемка с запуском интерфейса

Сообщение shplint »

Галактика 8.1 atlantis 5.4.28 Проблемная форма m-15_ASU.rtf
Вложения
M-15.rar
(77.56 КБ) 471 скачивание
Аватара пользователя
larin
топ-софт
Сообщения: 228
Зарегистрирован: Пн, 10/09/2007 12:13
Имя Фамилия: Михаил Ларин
Откуда: ТопCофт
Контактная информация:

Re: Проблемка с запуском интерфейса

Сообщение larin »

Посмотрел ваш пример. Проблема подтвердилась. Компилятор на вашем примере действительно падает. Только у меня он упал не на RunInterface, а на другой строчке:

Код: Выделить всё

файл m-15_dsk.frn
  if(RunDialog('C_COMMON::ForFormTTN', MainKol,FixKol,Options) = cmCancel) Exit;
Причина падения в наборе .Vih файлов которые выше подключены к этой форме в блоке .declare. В этих файлах описаны объекты из разных компонент. Но описание компонент у нас традиционно запрятано под директиву #ifdef.

Чтобы исправно скомпилировать ваш отчет достаточно в проекте указать

Код: Выделить всё

#define ComponentVersion
Аватара пользователя
larin
топ-софт
Сообщения: 228
Зарегистрирован: Пн, 10/09/2007 12:13
Имя Фамилия: Михаил Ларин
Откуда: ТопCофт
Контактная информация:

Re: Проблемка с запуском интерфейса

Сообщение larin »

Более того, чтобы вызвать интерфейсы и диалоги из других компонент существует два способа.

Первый это явно указывать префикс компоненты при вызове. Как вы и делали:

Код: Выделить всё

RunInterface('L_Sklad::iPrnShowSchet26', накладная_нрек, '', Kredit, '', '', '', '')
Второй это на уровне проекта подключать заголовочные VIH VIL файлы с описаниями параметров интерфейсов соответствующих компонент.

Код: Выделить всё

#define ComponentVersion

#include c_common.vil
#include L_Sklad.vil

#make "m-15_ASU.rtf"
Тогда префикс при вызове можно не указывать.

Код: Выделить всё

RunInterface('iPrnShowSchet26', накладная_нрек, '', Kredit, '', '', '', '')
Второй способ более предпочтительный.
Вложения
Projectm-15.rar
В архиве исправленный пример.
(98.42 КБ) 464 скачивания
Аватара пользователя
larin
топ-софт
Сообщения: 228
Зарегистрирован: Пн, 10/09/2007 12:13
Имя Фамилия: Михаил Ларин
Откуда: ТопCофт
Контактная информация:

Re: Проблемка с запуском интерфейса

Сообщение larin »

По поводу Runtime error 216 зафиксировал ПИР 102.97079.
Ответить