Задание секций выполнения в процессе компиляции.
beforecompile <операция 1>; .... <операция n>; end;
Задание секции выполнения операций в процессе компиляции текста скрипта. Операции внутри секции будут исполнены сразу, как только заканчивается данная секция. Данная секция может использоваться, например, для динамического ввода нужных сигналов, которые используются далее.
beforecompile //секция выполнения в процессе компиляции if not signalexist("gant_s") then addsignaltolist(13,0,"gant_s","gant_s","[[0]]",2); if not signalexist("gant_tend") then addsignaltolist(13,0,"gant_tend","gant_tend","[[0]]",2) ; if not signalexist("gant_t0") then addsignaltolist(13,0,"gant_t0","gant_t0","[[0]]",2); end; gant_s = [1,2,3];
В примере происходит динамическое добавление новых сигналов в список сигналов проекта с дальнейшим использованием созданных сигналов в том же скрипте.
beforecompile //Эта секция выполняется ДО компиляции остального скрипт if signalexist(Name1+"_L1_SET") then eval("define ISST1") else eval("undefine ISST1"); if signalexist(Name1+"_H1_SET") then eval("define ISST4") else eval("undefine ISST4"); //определяем флаги наличия уставок //если какой-то уставки нет, то выключаем флаг !!! иначе - //включаем if signalexist("AS_"+Name1+"_L1_ON") then eval("define LAS11") else eval("undefine LAS11"); if signalexist("AS_"+Name1+"_H1_ON") then eval("define HAS11") else eval("undefine HAS11"); if signalexist("PS_"+Name1+"_L1_ON") then eval("define LPS11") else eval("undefine LPS11"); if signalexist("PS_"+Name1+"_H1_ON") then eval("define HPS11") else eval("undefine HPS11"); //теперь, если флаг есть - то уставка есть, иначе - не делаем // ничего с этой уставкой end;
В примере определена секция скрипта, выполняемая до компиляции основного скрипта. В секции определяется наличия уставок для сигналов, если какой-то уставки нет, то выключаем флаг наличия уставки, иначе - включаем.