советник - разные вопросы - страница 37

 

#Объект Смешанный - Открытый

Я уже несколько раз спрашивал об этой проблеме и не получил хороших ответов.
И я уже пытался найти решение на SEO. Там ничего не нашлось для моего вопроса (возможно, причина в моем ограниченном английском)... и тогда я решил, что могу спросить еще раз об этом вопросе с более четким описанием (надеюсь, у меня получится...).

Поэтому я пишу пример кода, чтобы кодеру и программисту было легче понять мою проблему.

Примечание: параметры обоих объектов могут быть такими, как показано ниже.

ObjectCreate(0,"Button",OBJ_BUTTON,0,0,0);
ObjectSetString(0,"Button",OBJPROP_TEXT,"Click -");
ObjectSetInteger(0,"Button",OBJPROP_XDISTANCE,100);
ObjectSetInteger(0,"Button",OBJPROP_YDISTANCE,20);
ObjectSetInteger(0,"Button",OBJPROP_XSIZE,80);
ObjectSetInteger(0,"Button",OBJPROP_YSIZE,30);
ObjectSetInteger(0,"Button",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
ObjectSetInteger(0,"Button",OBJPROP_COLOR,clrWhite);
ObjectSetInteger(0,"Button",OBJPROP_BGCOLOR,clrGray);
ObjectSetInteger(0,"Button",OBJPROP_STATE,false);
ObjectSetInteger(0,"Button",OBJPROP_BACK,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTED,false);
ObjectSetInteger(0,"Button",OBJPROP_ZORDER,1);

ObjectCreate(0,"Hline",OBJ_HLINE,0,0,WindowPriceMax() - ( 40 * Point ));
ObjectSetInteger(0,"Hline",OBJPROP_COLOR,clrBlue);
ObjectSetInteger(0,"Hline",OBJPROP_BACK,false);
ObjectSetInteger(0,"Hline",OBJPROP_ZORDER,0);

#msissue - кнопка hline смешанная

Заранее спасибо.

 
Но в чем же дело?
 
Marco vd Heijden:
Но в чем проблема?
Когда мне нужно щелкнуть объект Button, объект Hline также переходит в режим выделенного объекта.
 
ObjectCreate(0,"Button",OBJ_BUTTON,0,0,0);
ObjectSetString(0,"Button",OBJPROP_TEXT,"Click -");
ObjectSetInteger(0,"Button",OBJPROP_XDISTANCE,100);
ObjectSetInteger(0,"Button",OBJPROP_YDISTANCE,20);
ObjectSetInteger(0,"Button",OBJPROP_XSIZE,80);
ObjectSetInteger(0,"Button",OBJPROP_YSIZE,30);
ObjectSetInteger(0,"Button",OBJPROP_CORNER,CORNER_RIGHT_UPPER);
ObjectSetInteger(0,"Button",OBJPROP_COLOR,clrWhite);
ObjectSetInteger(0,"Button",OBJPROP_BGCOLOR,clrGray);
ObjectSetInteger(0,"Button",OBJPROP_STATE,false);
ObjectSetInteger(0,"Button",OBJPROP_BACK,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTABLE,false);
ObjectSetInteger(0,"Button",OBJPROP_SELECTED,false);
ObjectSetInteger(0,"Button",OBJPROP_ZORDER,1);

ObjectCreate(0,"Hline",OBJ_HLINE,0,0,WindowPriceMax() - ( 40 * Point ));
ObjectSetInteger(0,"Hline",OBJPROP_COLOR,clrBlue);
ObjectSetInteger(0,"Hline",OBJPROP_BACK,true);
ObjectSetInteger(0,"Hline",OBJPROP_ZORDER,0);
 
Marco vd Heijden:

Все равно, когда я нажимаю на объект Button, выбирается объект Hline.

Спасибо большое.

 

Когда вы установите:

ObjectSetInteger(0,"Hline",OBJPROP_BACK,true);

Линия будет находиться за кнопкой.

Но вы правы, она все равно будет выбрана.

Поэтому в зависимости от того, нужно ли вручную настраивать линию, можно добавить:

ObjectSetInteger(0,"Hline",OBJPROP_SELECTABLE,false);
 
Marco vd Heijden:

Извините, но иногда мне нужно выбрать "Hline".
Это очень важно для меня.

Когда я нажимаю на объект Button, если будет выделена Hline, это очень опасно для меня.

 

Затем нужно немного перетащить вертикальную шкалу, чтобы линия вышла из-под кнопки.

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

 
Marco vd Heijden:

Кнопка занимает один клик, а линия - два, поэтому, если вас это сильно раздражает, вы можете запустить счетчик, который устанавливает линию фиксированной на короткое время после нажатия кнопки.

Однажды я уже спрашивал об этом в моей другой подтеме - но я думаю, что это не будет полезно для меня.
У меня есть идея, но я не знаю, как я могу это сделать - но я точно знаю, что я попробую что-нибудь для этого. Потому что я думаю, что это более безопасный способ, чем этот.

Спасибо за ваши комментарии.

( Я скоро начну исследовать свою идею - надеюсь, я сделаю это сам... )

 

В код, который выполняется при нажатии на кнопку, включите код

ObjectSetInteger(0,"Hline",OBJPROP_SELECTED,false);
таким образом, если вы выделите строку при нажатии на кнопку, она будет автоматически снята с выделения.