Есть вопросы!
Модераторы: m0p3e, edward_K, Модераторы
Есть вопросы!
Всем привет. Помучаю еще вопросами. 1) Как вызвать функцию или открыть окно одного интерфейса из другого (просто интерфейса, не объектного). 2) Можно ли расшарить table struct между двумя интерфейсами, или передать заполненный table struct в метод другого интерфейса. Заранее спасибо!
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
1. поищите embedded в vipprogr.chm - если просто Runinterface не подходит.
2. опишите table struct вне interface ( либо в проекте, а лучше в отдельном файле и цеплянуть его в проекте через #include ) - сможете и в отчетах использовать. Одно но - экземпляр будет освобожден после закрытия главного фейса. Так что вызвать подряд 2 фейса, в одном заполнить, а во втором напечатать незя - тока один из другого. mtChangeRefCount поищите, если просто так не получиться.
2. опишите table struct вне interface ( либо в проекте, а лучше в отдельном файле и цеплянуть его в проекте через #include ) - сможете и в отчетах использовать. Одно но - экземпляр будет освобожден после закрытия главного фейса. Так что вызвать подряд 2 фейса, в одном заполнить, а во втором напечатать незя - тока один из другого. mtChangeRefCount поищите, если просто так не получиться.
2) сделал как и описали, однако облом
Не видит другой фейс таблицу , заполненную в главном. Сейчас имеем такую ситуацию:
//---Файл определений MyTbl.vip ---
table struct MyTbl
(
Список полей
);
//--Файл 1 --
interface ifc1;
#include "MyTbl.vip"
cmOk:
{
mtChangeRefCount(#MyTbl, 100);
Message(RecordsInTable(#MyTbl)); // Тут 20!
RunInterface(ifc2);
}
//-- Файл 2--
interface ifc2;
#include "MyTbl.vip"
cmInit: Message(RecordsInTable(#MyTbl)); // Тут 0
Что еще покрутить? Спасибо!

//---Файл определений MyTbl.vip ---
table struct MyTbl
(
Список полей
);
//--Файл 1 --
interface ifc1;
#include "MyTbl.vip"
cmOk:
{
mtChangeRefCount(#MyTbl, 100);
Message(RecordsInTable(#MyTbl)); // Тут 20!
RunInterface(ifc2);
}
//-- Файл 2--
interface ifc2;
#include "MyTbl.vip"
cmInit: Message(RecordsInTable(#MyTbl)); // Тут 0

Что еще покрутить? Спасибо!