Помогите подправить код, пожалуйста

 

Ребят помогите пожалуйста, при выделении текста и смещении его происходит действие, я же хочу заменить эту процедуру обычной кнопкой, но 


Как заменить вот это:

      dellimit =Chek("удалить лимит", 100, 100, sl,0);

обычной кнопкой, вот как я пытался, но пишет: expression has no effect

      PutButton("delsl",100,100,"Удалить селл лимиты");
      
      if(ObjectFind(0,"delsl")==0)
         if(GetState("delsl"))
           {
            sl;
           }
         else
           {

           }


Вся нужная часть кода(рабочая)

                  if(OT==OP_SELLLIMIT)
                  {
                     if (delall || dellimit) 
                     {
                        if (OrderDelete(Ticket))
                           Comment("Удален SELLLIMIT ордер ",Ticket);
                        else 
                           Comment("Ошибка ",GetLastError()," удаления SELLLIMIT ордера ",Ticket);
                     }
                     else sl++;
                  }

      //---

      dellimit =Chek("удалить лимит", 100, 100, sl,0);

bool Chek(string name, int X,int Y, int n, double P)
{
   if (ObjectFind(name)!=-1)
   {
      if (X != ObjectGet(name,OBJPROP_XDISTANCE) || 
          Y != ObjectGet(name,OBJPROP_YDISTANCE))
      {
         ObjectSet(name,OBJPROP_XDISTANCE,X);
         ObjectSet(name,OBJPROP_YDISTANCE,Y);
         return(true);
      }
   }
   DrawLABEL(name,X,Y,n,P);
   return(false);
}
 
utock:

Ребят помогите пожалуйста, при выделении текста и смещении его происходит действие, я же хочу заменить эту процедуру обычной кнопкой, но 


Как заменить вот это:

обычной кнопкой, вот как я пытался, но пишет: expression has no effect


Вся нужная часть кода(рабочая)

Просто проверить не координаты текста, а состояние кнопки. И после выполнения нужного действия, вернуть кнопке отжатое состояние.

Примерно так

   if(ObjectGetInteger(0, "C", OBJPROP_STATE) == true)// если кнопка нажата
    {
     CloseAll();
     ObjectSetInteger(0, "C", OBJPROP_STATE, false);// вернём кнопке состояние "отжата"
    }
 
Alexey Viktorov:

Просто проверить не координаты текста, а состояние кнопки. И после выполнения нужного действия, вернуть кнопке отжатое состояние.

Примерно так

Спасибо за ответ, но у меня не получается поставить кнопку заместо обычного текста, то что у меня выходит я выложил и оно не работает, помогите с этим пожалуйста

 
utock:

Спасибо за ответ, но у меня не получается поставить кнопку заместо обычного текста, то что у меня выходит я выложил и оно не работает, помогите с этим пожалуйста

А что за функция

PutButton("delsl",100,100,"Удалить селл лимиты");

она вообще присутствует? Кнопку создаёт?

 
Alexey Viktorov:

А что за функция

она вообще присутствует? Кнопку создаёт?

эту кнопку я сам создал, я пытаюсь перенести функционал в неё, на примере любого текста(даже не знаю как это написать, текст выделяется и перемещается и создается действие)

 
utock:

эту кнопку я сам создал, я пытаюсь перенести функционал в неё, на примере любого текста(даже не знаю как это написать, текст выделяется и перемещается и создается действие)

Ну так я показал ведь пример.

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Помогите подправить код, пожалуйста

Alexey Viktorov, 2019.03.30 06:53

Просто проверить не координаты текста, а состояние кнопки. И после выполнения нужного действия, вернуть кнопке отжатое состояние.

Примерно так

   if(ObjectGetInteger(0, "C", OBJPROP_STATE) == true)// если кнопка нажата
    {
     CloseAll();
     ObjectSetInteger(0, "C", OBJPROP_STATE, false);// вернём кнопке состояние "отжата"
    }

Замените CloseAll() на Alert("Ура получилось!!!"); и имя объекта "С" на имя своей кнопки и понажимайте кнопку.