PutEventById
Модераторы: m0p3e, edward_K, Модераторы
PutEventById
Добрый день!
Пытаюсь сделать свою форму на vip-е.
При компиляции выдается ошибка: нет такой функции, метода или поля, или неверный контекст использования: fcc1.
Ругается на строчку:
frm36mkhp.PutEventById(feDoLoop, fcc1);
Пробовала менять название переменной с1 на другие - не помогает. В чем может быть проблема?
Вот кусочек кода:
RUNDIALOG(forma36_PAS,D1,D2);
RUNINTERFACE(getsklad,MyPodr);
RUNINTERFACE(getsomemc,-12345,-12346);
frm36mkhp.write(d1,0);
frm36mkhp.write(d2,0);
frm36mkhp.write(katpodr.name,0);
// цикл по МЦ
if (modifier getfirst pickname=tsok)
do
{
frm36mkhp.PutEventById(feDoLoop, fcc1);
frm36mkhp.write(katmcpick.name,0);
}
While (modifier getnext pickname=tsok)
Пытаюсь сделать свою форму на vip-е.
При компиляции выдается ошибка: нет такой функции, метода или поля, или неверный контекст использования: fcc1.
Ругается на строчку:
frm36mkhp.PutEventById(feDoLoop, fcc1);
Пробовала менять название переменной с1 на другие - не помогает. В чем может быть проблема?
Вот кусочек кода:
RUNDIALOG(forma36_PAS,D1,D2);
RUNINTERFACE(getsklad,MyPodr);
RUNINTERFACE(getsomemc,-12345,-12346);
frm36mkhp.write(d1,0);
frm36mkhp.write(d2,0);
frm36mkhp.write(katpodr.name,0);
// цикл по МЦ
if (modifier getfirst pickname=tsok)
do
{
frm36mkhp.PutEventById(feDoLoop, fcc1);
frm36mkhp.write(katmcpick.name,0);
}
While (modifier getnext pickname=tsok)
Re: PutEventById
Может ругается на константу события feDoLoop?
Re: PutEventById
в випе должно присутствовать в самом начале типа таких строк
const
#include myconst.inc
end;
а в файле myconst.inc
должна быть строка наподобие
fcc1=1234;
const
#include myconst.inc
end;
а в файле myconst.inc
должна быть строка наподобие
fcc1=1234;
Re: PutEventById
Спасибо!
Переменную с1 я писала в интерфейсе как Word, но значения нигде не присваивала.
Все-равно необходимо fсс1 описывать как константу в include файле?
В include файле fcc1 можно задать произвольное значение? (просто у меня еще есть переменные циклов - им можно давать любое значение?)
Переменную с1 я писала в интерфейсе как Word, но значения нигде не присваивала.
Все-равно необходимо fсс1 описывать как константу в include файле?
В include файле fcc1 можно задать произвольное значение? (просто у меня еще есть переменные циклов - им можно давать любое значение?)
-
- Местный житель
- Сообщения: 474
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Сибирь-матушка
- Контактная информация:
Re: PutEventById
Не надо никаких include'ов ...
Просто перед компиляцией надо скопилировать прототип и все .Копилятор сам создаст и присвоит значения встречающимся константам из имеющихся свободных - для cm'ов кнопочных ведь не пишете ничего ? Вот и здесь не надо ...
Просто перед компиляцией надо скопилировать прототип и все .Копилятор сам создаст и присвоит значения встречающимся константам из имеющихся свободных - для cm'ов кнопочных ведь не пишете ничего ? Вот и здесь не надо ...
Питаю патологические отвращение и ненависть в особо тяжелой и крайне запущенной формах к семейству программ Microsoft Business Solution !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Восславим господа Кришну за то, что у нас есть ГАЛАКТИКА !
Re: PutEventById
Туманову О.В.:
Можно и так, но как я написал тоже работает.
Не люблю полагаться на компилятор.
to HOPE:
в випе эту константу описывать не нужно только в секции const.
Можно и так, но как я написал тоже работает.
Не люблю полагаться на компилятор.
to HOPE:
в випе эту константу описывать не нужно только в секции const.
Re: PutEventById
Всем спасибо!
Обошлась вариантом Олега: откомпилила сначала форму, а затем интерфейс, в котором она заполняется.
Обошлась вариантом Олега: откомпилила сначала форму, а затем интерфейс, в котором она заполняется.
-
- Местный житель
- Сообщения: 645
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г.Королев МО ООО "Эффективная Комплексная Автоматизация- СОФТ"
Re: PutEventById
На диске после компиляции форм создается файл с расширением fnc. В нем лежат значения констант, которые подобрал компилятор форм. Но они еще и в ресурснике лежат с некоторой версии..поэтому действительно..вначале компилируется FRM, а затем VIP и думать о константах не надо. Чтобы не заморачиваться лучше писать проекты для сборки своих разработок и там описывать, что и в какой последовательности будет компилироваться.
Проекты удобны еще и тем, позволяют делать маке - т.е. перекомпилировать только измененные файлы, а не все.
Если некоторый интерфейс вызывает другой, то вызываемый лучше компилировать первым, чтобы проверялись параметры.
Проекты удобны еще и тем, позволяют делать маке - т.е. перекомпилировать только измененные файлы, а не все.
Если некоторый интерфейс вызывает другой, то вызываемый лучше компилировать первым, чтобы проверялись параметры.
Некоммерческое общение в форуме
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: PutEventById
А какие команды, кроме #MAKE там еще могут использоваться???
Банальный #include - это понятно.
Знаю, что прямо там можно описывать константы, которые будут понятны всем интерфейсам проекта.
CONST
MyCONST = 4 ;
...
END
Там же можно описывать таблицы в памяти, которые будут понятны всем интерфейсам в проекте:
Table struct ...
Интефейсы компилятся командой
#make "_полный_путь_до_файла_с_фейсом"
или
#make '_полный_путь_до_файла_с_фейсом'
либо можно и так (если запуск компилятора осуществляется из текущей папки с проектом)
#MAKE '*.vip'
#MAKE 'ProcessDoc\ProcessDoc.vip'
#MAKE '*.frm'
А какие еще команды есть?
Банальный #include - это понятно.
Знаю, что прямо там можно описывать константы, которые будут понятны всем интерфейсам проекта.
CONST
MyCONST = 4 ;
...
END
Там же можно описывать таблицы в памяти, которые будут понятны всем интерфейсам в проекте:
Table struct ...
Интефейсы компилятся командой
#make "_полный_путь_до_файла_с_фейсом"
или
#make '_полный_путь_до_файла_с_фейсом'
либо можно и так (если запуск компилятора осуществляется из текущей папки с проектом)
#MAKE '*.vip'
#MAKE 'ProcessDoc\ProcessDoc.vip'
#MAKE '*.frm'
А какие еще команды есть?
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: PutEventById
Ну, можно делать
#DEFINE и #DECLARE, причем описанные макроопределения будут доступны во всех, описанных ниже интерфейсах и формах...
а вообще - читайте РТФМ )
#DEFINE и #DECLARE, причем описанные макроопределения будут доступны во всех, описанных ниже интерфейсах и формах...
а вообще - читайте РТФМ )
-
- Местный житель
- Сообщения: 783
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Москва
- Контактная информация:
Re: PutEventById
С #DEFINE и #DECLARE тоже знакомы
А как использовать переменные окружения?
В файле vip.cfg пишу:
/#MyPath=D:\VIP\WORK\DZ
В файле D:\VIP\WORK\DZ\ProcessDoc\ProcessDoc.vip пишу
#INCLUDE %MyPath%\ProcessDoc\SomeProcedures.vpp
Компилятор выдает ошибку:
Ошибка: Ошибка при при открытии include файла (стр.264, поз.48 в ProcessDoc\ProcessDoc.vip) #INCLUDE %MyPath%\ProcessDoc\SomeProcedures.vpp
А как использовать переменные окружения?
В файле vip.cfg пишу:
/#MyPath=D:\VIP\WORK\DZ
В файле D:\VIP\WORK\DZ\ProcessDoc\ProcessDoc.vip пишу
#INCLUDE %MyPath%\ProcessDoc\SomeProcedures.vpp
Компилятор выдает ошибку:
Ошибка: Ошибка при при открытии include файла (стр.264, поз.48 в ProcessDoc\ProcessDoc.vip) #INCLUDE %MyPath%\ProcessDoc\SomeProcedures.vpp
-
- Абориген
- Сообщения: 943
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: External Developer
- Контактная информация:
Re: PutEventById
хм... ну у нас все батником запускаетмя ...
и все работает...
вот пример
BAT-файл
set ATLANTIS=E:\Atlantis\Atl711.2508
set iProject=.
set VipGals=%Atlantis%\Src
@echo ***!!!!!!!!!!***
%ATLANTIS%\EXE\vip.exe /c=%iProject%\vip.cfg %iProject%\make.prj
@echo ***done!***
==========
PRJ
#make '%iProject%\Other\Zar\*.rtf'
#make '%iProject%\Other\Zar\*.vip'
#make '%iProject%\Other\Kassa\*.frm'
#make '%iProject%\Other\Kassa\*.rtf'
#make '%iProject%\Other\Kassa\*.vip'
#make '%iProject%\KADR.APP\stafmain.mnu'// главное меню кадров
#make '%iProject%\KADR.APP\*.frm'
#make '%iProject%\KADR.APP\*.rtf'
#make '%iProject%\KADR.APP\*.slk'
#make '%iProject%\KADR.APP\*.vip'
в CFG
....
[Compilers]
Build=Off
ClearResource=Off
ErrorLevel=2
Full=Off
IncludesPath:=%iProject%;
/I=%atlantis%\EXE\
/I=%atlantis%\SOURCE\
Make=Off
OutputResourceName=%iProject%\debug.res
Run=Off
...
так что и PRJ и CFG понимают переменные
и все работает...
вот пример
BAT-файл
set ATLANTIS=E:\Atlantis\Atl711.2508
set iProject=.
set VipGals=%Atlantis%\Src
@echo ***!!!!!!!!!!***
%ATLANTIS%\EXE\vip.exe /c=%iProject%\vip.cfg %iProject%\make.prj
@echo ***done!***
==========
PRJ
#make '%iProject%\Other\Zar\*.rtf'
#make '%iProject%\Other\Zar\*.vip'
#make '%iProject%\Other\Kassa\*.frm'
#make '%iProject%\Other\Kassa\*.rtf'
#make '%iProject%\Other\Kassa\*.vip'
#make '%iProject%\KADR.APP\stafmain.mnu'// главное меню кадров
#make '%iProject%\KADR.APP\*.frm'
#make '%iProject%\KADR.APP\*.rtf'
#make '%iProject%\KADR.APP\*.slk'
#make '%iProject%\KADR.APP\*.vip'
в CFG
....
[Compilers]
Build=Off
ClearResource=Off
ErrorLevel=2
Full=Off
IncludesPath:=%iProject%;
/I=%atlantis%\EXE\
/I=%atlantis%\SOURCE\
Make=Off
OutputResourceName=%iProject%\debug.res
Run=Off
...
так что и PRJ и CFG понимают переменные
-
- На пенсии
- Сообщения: 797
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: г. Тюмень
- Контактная информация:
Re: PutEventById
В #INCLUDE не допускается использование переменнных окружения.
Обойти можно с помошью cfg в котором
[Compilers]
..
/I=%MyPath%\ProcessDoc\
..
В проекте соотвественно будет строка:
#INCLUDE SomeProcedures.vpp
Обойти можно с помошью cfg в котором
[Compilers]
..
/I=%MyPath%\ProcessDoc\
..
В проекте соотвественно будет строка:
#INCLUDE SomeProcedures.vpp
Жду выхода Вселенная 2.12!
Re: PutEventById
А если я хочу еще использовать временную таблицу в памяти?
Как должен выглядеть мой проект? так правильно:
#include 4Tov_Obor.inc
#make "4Tov_Obor.frm"
#make "4Tov_Obor.vip"
Опять ругается на переменную цикла.
Что там за логика заложена? может где почитать можно?
Как должен выглядеть мой проект? так правильно:
#include 4Tov_Obor.inc
#make "4Tov_Obor.frm"
#make "4Tov_Obor.vip"
Опять ругается на переменную цикла.
Что там за логика заложена? может где почитать можно?