beforecompile

Задание секций выполнения в процессе компиляции.

Синтаксис:

beforecompile
<операция 1>;
....
<операция n>;
end; 

Описание:

Задание секции выполнения операций в процессе компиляции текста скрипта. Операции внутри секции будут исполнены сразу, как только заканчивается данная секция. Данная секция может использоваться, например, для динамического ввода нужных сигналов, которые используются далее.

Пример1:

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];

В примере происходит динамическое добавление новых сигналов в список сигналов проекта с дальнейшим использованием созданных сигналов в том же скрипте.

Пример2:

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;

В примере определена секция скрипта, выполняемая до компиляции основного скрипта. В секции определяется наличия уставок для сигналов, если какой-то уставки нет, то выключаем флаг наличия уставки, иначе - включаем.

Используемые функции и ключевые слова