用 MQL 编写的用户界面图库 - 页 10

 

......最后,今天还有一件厚颜无耻的事--复制一个 ME 设置窗口。


这样就更容易理解哪个窗口是 "假的 "了。)

 
Реter Konow #:

是的,当然。没问题

别问我是怎么做到的,我什么都不记得了。))))))

尼古拉会回答得更好。

令人惊讶的是,即使是 MQ 快速交易的内置面板也有这样的错误!

 
Aleksey Vyazmikin #:

令人惊讶的是,即使是 MQ 快速交易的内置面板也存在这样的错误!

您只需控制对象的属性。算法必须知道光标在哪个对象上方,哪个对象处于 "焦点 "状态。更改底部对象的属性,使其对光标和点击没有反应。我想是的,但我可能记错了,因为我不记得了。已经很多年了。

 
我记得,当光标位于我的窗口上方,而我正在滚动窗口中的内容时,我的算法关闭了图表的滚动。然后,当光标回到图表的自由空间时,算法再次启用滚动。
 
Реter Konow #:
我记得

我们现在不能看吗?

 
Aleksey Vyazmikin #:

我们现在不能看吗?

我的档案里有几万行代码,散落在几十个文件里,我什么都不记得了。)))),我会试着在闲暇时看看的。

 
Реter Konow #:

我的档案中有几万行代码,散落在几十个文件中,但我什么也记不起来了。)))))),我会试着在闲暇时看看。

哦,我明白了,我也是在不同的电脑上......当你试图把所有东西拼凑在一起时,你会发现自己并不理解代码的含义:)现在,我开始在代码中写很多注释--这很方便,虽然在写代码时似乎是在浪费不必要的时间,但当你一年后再回头看时,就会发现它有很大的帮助。

 
Aleksey Vyazmikin #:

哦,我明白了,我也在不同的计算机上.....。当你想把所有东西都整合到一起时,你会发现你并不理解代码的含义:)现在,我开始在代码中写很多注释--这很方便,虽然在写代码时似乎是在不必要地浪费时间,但当你一年后再回头看时,就会发现它有很大帮助。

如果我进入存档,恐怕画廊就永远不会结束了,笑。))))))那里有一个构造函数,在上面创建新窗口非常容易。如果我想完成可视化编辑器......怎么办?那我岂不是要困上好几个月?))))))

 
Aleksey Vyazmikin #:

...现在,我开始在代码中写很多注释--这很方便,虽然在写代码时似乎是在浪费不必要的时间,但当你一年后再回头看时,就会发现它有很大的帮助。

我完全同意注释的说法。你肯定应该给代码写上解释。

 
Aleksey Vyazmikin #:
我没有开发此类界面的经验,但我从不同渠道获得的信息有一个很大的缺陷,即有时(!)图表上的其他对象会通过它们被点击。您能解决这个问题吗?

当然,我的界面要简单得多。我没有使用画布,只是用标准控件构建了一个面板。为了防止图表上的其他对象透光,我每分钟重新绘制一次所有窗口组件:

if (iTime(_Symbol,PERIOD_M1,0) > LastMinute && !IsTesting()) { 
   LastMinute = iTime(_Symbol,PERIOD_M1,0);
   for (int i = 0; i < 45 ; i++) {
      long tf = ObjectGetInteger(0, Controls[i], OBJPROP_TIMEFRAMES);
      if (ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, -1)) 
         ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, tf);
   }
}

这里的 Controls 是一个包含组件名称的数组。