Нужна помощь. Определение начала оптимизации МТ4

 
МТ4. Существует ли способ определить первый прогон оптимизации в ondeinit() ?
 
Mikhail Sergeev:
Существует ли способ определить первый прогон оптимизации в ondeinit() ?
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
 
Stanislav Korotky:
Это про МТ4 или МТ5? В МТ5 для начала оптимизации есть событие OnTesterInit.
МТ4
 

В четвёрке - только костыльными методами. Вот так, например:

void OnDeinit(const int nReason)
{
   // флаг первого прогона оптимизатора
   bool bFirstRun = false; 

   // если переменной GV не существует, значит это первый прогон
   if(GlobalVariableCheck("GV") == false)
   {
      bFirstRun = true;
      GlobalVariableSet("GV", 1);
   }
}

Не забудьте удалить переменную перед запуском оптимизатора.

 

Ещё можно в коде проверять, являются ли текущие значения входных параметров начальными для оптимизации:

void OnDeinit(const int nReason)
{
   // флаг первого прогона оптимизатора
   bool bFirstRun = inputParam1 == ... && inputParam2 == ... и т.д.
}

 

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

 
Если хотите что то поменять после какого то прогона то просто а=1,2,3 - оптимизируемый параметр

extern int a; int x; void OnInit() { if (a==2){x=3.14;// хочу что то изменить в советнике после первого прогона

} }

 
Спасибо. Буду выдумывать костыли, наиболее подходящие для моих задач.
Причина обращения: