专家顾问 - 杂项问题 - 页 37

 

#Object Mixed - Open

我已经问过几次这个问题了,但没有得到好的答案。
我已经尝试在搜索引擎上寻找解决方案。然后我决定再问一次关于这个问题的更清楚的描述(我希望我这样做......)。

所以我写了一些示例代码,让程序员们容易理解我的问题。

注意:两个对象的参数 都可以是下面这样的。

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);
这样,如果你在点击按钮时选择了这一行,它将自动被取消选择。
原因: