Остановка функции на некоторое время без использования sleep(); + новая интересная задача. - страница 2

 

Можно пример кода? Желательно с комментариями.

Я пока только изучаю возможности.

 
Chaos666 писал (а) >>


Скажите, пожалуйста, как воплотить? Т.е. можно ли сделать таймер и как?

Например, так

   if(TimeCurrent()-LastTime<DeltaTime)
      return(0);
   else
      LastTime=TimeCurrent();
 

Надо переменные объявлять новые?

 

Да, надо объявить 2 внешние переменные...

extern int DeltaTime=100; // Временной промежуток остановки выполнения функции
datetime LastTime;        // Последнее известное время
 

Описывал выше задачу. Нужно, чтобы звуковой файл игрался при каждой котировке даже когда нарисуется квадрат.


static double mSaveAsk;
extern int DeltaTime=10;
datetime LastTime;
 
int init()
{
   mSaveAsk = Ask;
 }

int deinit()
  {

   return(0);
  }

int start()
  {
//----
 
if ( Ask != mSaveAsk )
      {
     PlaySound("alertDOWN.wav"); //этот файл должен играться при каждой котировке, даже когда квадрат нарисуется
 }
 return(0);
   {     
      ObjectCreate("Quard",OBJ_RECTANGLE,0,Time[650],10000,Time[0]+1000000,0); //рисуем квадрат
      ObjectSet("Quard",6,Red);
      
      {
      if(TimeCurrent()-LastTime<DeltaTime) 
      return(0);                           //ждём
   else
      LastTime=TimeCurrent();
            }
            
            {
      ObjectDelete("Quard");        //удаляем квадрат
      }
   } 
   
      mSaveAsk = Ask;
     //----
   return(0);
  }
 
Здесь нужен цикл??? Помогите кто-нибудь, пожалуйста. Почти пришли к решению =))
 
Поднимаю тему....
 

Надоел мне этот мужик со своей задачей.

Вот скрипт, который при бросании на график сразу рисует квадрат, если котировки не обновляются то через 15 сек удаляет, если котировка обновилась ранее 15 сек квадрат останется и будет ждать снова 15 сек. На каждом тике трещит. Если 15 сек прошло- квадрат удалится, если потом поступила котировка- квадрат опять нарисуется. В коде есть Sleep но он нужен только чтоб журнал менее засорять принтами, а так ни на что не влияет и ни чему не мешает. Если надо принты можно удалить.

Скрипт переделать в советник сможете, надеюсь, сами. Качество не гарантирую.

Проверял на 213 билде. (есть баг, когда квадрат рисуется или удаляется, но на графике его нет или он до сих пор есть, пока не щелкнешь мышкой по графику). Код на оптимальность не проверял.

Нихрена не гарантирую, короче. Смотрите сами, если чё - жалуйтесь.

Файлы:
testic.mq4  2 kb
Причина обращения: