我们不能再控制对象在图形上的 "垂直 "位置了

 

最后一次关于源代码格式问题的讨论几乎是 丑闻,以开发者承认程序员有 "权利 "以他们 喜欢的方式(而不是他们认为的方式)编写程序而结束,并承诺最终确定源代码格式设置。

现在我遇到了一个类似的情况,我想再次询问那些为其开发MQL5的人的意见。

这里 开始。简而言之,故事如下:MQL5中的对象按其创建的顺序放在图表中。第一个创建的对象是最低的一个。如果你在代码中或被用户不小心删除了它,就不可能有其他的方式来放下它(除了删除其余的对象并按正确的顺序重新创建它们)。最明显的例子:你做了一个基底,在上面放上文字、输入字段和按钮如果你现在删除它并创建它,它将涵盖你想在它上面看到的所有东西,成为最新的。

我已经向服务台提出了建议。

необходимо предусмотреть механизмы произвольной сортировки объектов "по вертикали". Либо наличием свойства Zorder у каждого объекта, либо функциями BringToFront, SendToBack, InFrontOf, BehindOf. Ну или хотябы сделайте так же как было в 4-ке - по имени объекта, т.к. к такому поведению объектов все уже привыкли и ожидают что в 5-ке будет также.

我马上就得到了它,网址是....

安东-蒂莫费耶夫 2010.05.27 12:27
目前的绘图顺序规则很简单,足以用于绘图控制。在某些情况下,按名称排序可以更灵活地控制渲染顺序--这是本论坛中描述的具体任务的简单解决方案(小缺点),但它将迫使所有用户在添加任何对象(包括非MQL对象)时仔细考虑名称(大缺点)。
MT5中对象叠加时的渲染顺序已经在实践中使用(背景、按钮等)。我没有抱怨过问题--一切都在很简单的算法上解决了。

谁会怀疑,对他们来说,这可以说是一个 "简单且足以控制渲染 "的解决方案?:))))

对我的评论。

外汇工具。

其他人没有抱怨并不意味着没有问题,也许是因为没有人对界面感到困扰;)

答复


闲逛。

https://www.mql5.com/ru/articles/64

https://www.mql5.com/ru/articles/65

https://www.mql5.com/ru/code/68

我们已经做了很多内部测试,我们已经开发了界面和游戏。渲染顺序本身没有问题,只是在考虑到顺序的情况下改变你的方法。

好的说法:Ttris和Miner游戏是用来调试未来交易界面的解决方案的:))

而底线就是他们的判决。

上面我已经相当详细地描述了我们不会做出改变的原因。我简单重复一下:为了在某一特定情况下的方便,你不能在所有其他情况下让其他人的生活更困难。

如果说在F4中至少有一些图表对象位置的顺序(通过对象名称),在5中,我们已经做了一个自画的牌包,并建议我们 "改变我们的方法 "来编写MQL5程序。


TOTAL: 同行的编码员们怎么看? 你需要一个控制物体垂直放置的机制吗? 我已经建议了三个选项。

1) 旧的--通过物体的名称

2) 正常 - 为图表的每个对象添加Z-order属性

3) 程序性的 - 使用函数BringToFront, SendToBack, InFrontOf, BehindOf

或者接受开发者的唯一选择:在删除的情况下,按照所需的顺序完全重绘所有(!!!!)对象。

谁对这个问题有什么看法?


 
2)
 
我不太明白。 在MT5中,图形对象不是按对象名称深入排列,而是按创建时间排列?
 
Integer >>:
Не совсем понял. В МТ5 графические объекты в глубину располагаются не по имени объекта а по времени создания?
正是如此!这里 有一个简单的脚本可以检查
 

.

我支持2)或至少1)。

而程序性的,谁知道呢?


我也提出了我自己的变体

所有赞成层叠样式表的人!!!!!

是的,你在MKL5里有很多的 "伟大"。

 

2)

如果有的话,对象的顺序是由创建时间决定的,这只是映射的一个缺点。

毫不含糊地--这是一个疏忽,忽略了元引号方面的问题。

毕竟,在按名字排序的情况下,程序员至少有一些机会可以随意排序。

而随着创建日期的到来,甚至这种可能性也消失了。

你应该返回1,或者最好是2。它只是给对象增加了另一个方便的属性。

 

当然,对于Z坐标来说,这符合OOP的精神。
我支持2)。

 
我赞成z-order/z-index的做法
 

2) - 最佳选择。

 

1.当然,人们可以讨论未记录的功能。而这已经做了很多次了。但为了找到解决办法。不是为了改变无记载的行为。

2.我们还有很多要求(比这次讨论的参与者还多),希望改变对象的渲染方式。是的,在Five中,我们按照对象的创建时间 做了一个简单而自然的排序(然而,这也是没有记录的)。我们现在该怎么做?

3.我们什么都不做!因为通过当前的排序,我们可以简单地重新创建一组对象,这在按名称排序时是不可能的。

 

stringo писал(а) >>

与目前的排序一样,你可以简单地重新创建一个对象组,这在按名称排序时是不可能的。

用户用鼠标握住一个物体,就会破坏整个事情。你是否考虑到了这一点?为什么不可能呢?