我的方法。核心是引擎。 - 页 28

 
Dmitry Fedoseev:

顺便说一句,阿纳托利的图书馆也是一个笑话。有多少关于这个主题的文章?大约50?在评论中每到一处--"哦,还没有,我需要改进它"。如何开始使用他的图书馆必须阅读这50篇文章?要点和意义是什么?

我试着把提到的库连接起来,我的意见是模棱两可的,是的,它很方便,是的,它很美,但是当这个库创建的时候,我没有从事MQL,而且随着MT的后续构建,这个库变得 "有条件地运行",文章中的一些例子不能编译或工作时有bug,要理解成吨的代码,唉,还是用MT的标准交付比较容易。

Maxim Kuznetsov:

现代GUI构造器(那些 "把按钮铺到表单上 "的构造器)是一个相当有技术含量的东西,把MQL元素附加到它们身上看起来并不美妙。

几乎所有的人在中间形式(项目文件等)中都有一个描述位置和元素之间关系的XML。

为目标平台生成代码实际上是一种XSLT转换,任何认为自己是网络开发者的人都可以做到:-)

以EasyAndFast(https://www.mql5.com/ru/code/19703)为例,因为它是基于对象的,并且拥有所有必要的组件。(而且是公开的、有记录的,不像在这个主题里)。
并简单地写了一个翻译。

没有gui-mql构建器,不是因为它太复杂,而是因为它不流行。


是的,我正在寻找这些--我很感兴趣,至少是为了蹭彼得的饭吃。))))

我没有时间也不希望解决所有的细节问题--为什么 不直接使用跨平台GUI构建器?

 
Igor Makanu:

我试着连接了上面提到的库,我的意见是模棱两可的,是的,它很方便,是的,它很美,但是这个库创建的时候我没有参与MQL,而且随着MT的后续构建,这个库变得 "有条件地运行",文章中的一些例子不能编译或工作有BUG,要理解成吨的代码,唉,还是使用默认的MT包比较方便。


是的,我正在寻找它--至少是为了让彼得的鼻子发酸。))))

我没有时间,也不希望去研究 这一切!

看一看QT设计器。

 
Dmitry Fedoseev:

彼得,哪里说过你的GUI不是由图形对象组成的,而是在画布上绘制的?我们不要狡辩了,这看起来很糟糕

...

作为一个艺术家,我无法超越这些话。


当然,远非理想,但 "可怕"?

 
Igor Makanu:

是的,我正在寻找一个--我想至少把彼得的鼻子擦得更干净。))))

但说真的,我想尝试一些跨平台的GUI构建器,也许可以展示一些东西,我可以看看

不需要擦拭))。而且不需要看。

DLL到C-sharp。VS环境已经有了一个构造函数。该语言几乎与MQL相似。如果不是为了市场,而是为了自己,最简单和最明显的选择,具有现代的外观和感觉。

而Peter提供的是Borland公司在90年代初推出的Turbo Vision系列的类似DOS的图形用户界面。

 
Yuriy Asaulenko:

而Peter提供的是Borland公司在90年代初的Turbo Vision系列中的DOS型图形用户界面。

这是一个相当好的图形用户界面。也许我太老了,但我认为这很好。

问题是谁会有兴趣使用它?他们有多少人?

 

制作你自己的GUI并不是问题。

问题是为它找到一个有意义的用途,而这是更多用户所需要的。到目前为止,这就是大家的困难所在。如果有一个正常的任务,会有一个GUI,而且不止一个...

彼得,用户为什么需要你的产品,这个问题的答案是什么?我明白你对这个过程很着迷,我正在经历这个过程。但是,用户为什么需要它呢?谁是目标受众?
 
Georgiy Merts:

这是一个相当好的图形用户界面。也许我太老了,但我认为这很好。

问题是,谁会有兴趣使用它?这里有多少人?

好还是坏--这完全取决于具体的任务。几年前,我在Excel表上设计了一个GUI终端--有按钮、字段、表格、实时图表和其他属性。我需要它专门用于手工交易。构建和接口方面没有任何问题。

彼得的GUI是作为问题的解决方案和建设的简化而提出的。他构思并制作了它,当然做得很好,但这里长期以来没有问题,也没有什么可简化的。

 

111

嗯-嗯--漂亮。还有一个与其他一些截图不一致的地方(风格上),这是非常值得怀疑的。

 
Реter Konow:

下面是我的连接界面的一个例子。

这里的一切都已经解决了。

我已经看了一下。这是一个混乱的局面。该文件几乎完全被On_Gui_Event函数所占据,它有600行长。这里是它的一个片段(拼写和标点符号被保留了)。

void On_Gui_Event(int Element, string value)
{
 string action = value, selected_option = value; //DON'T CHANGE THIS LINE
//------------------------------------
 switch(Element)
   {
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox_1  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Checkbox_1:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  
//=====================================================================================================================
//WINDOW:   Checkboxes | element: CHECKBOX  | name: Checkbox_2  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX4___Checkbox_2:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  ...
//=====================================================================================================================
//WINDOW:   Spin edits | element: D_LIST  | name: D_LIST_2  |  Location: Window's Main Frame
//=====================================================================================================================
case D_LIST20___D_LIST_2:
               //------------------------------------------------------------------------------------------------------
               //What to do when option selected?
               //------------------------------------------------------------------------------------------------------
               if(selected_option == "L_ITEM  1"){}
               if(selected_option == "L_ITEM  2"){}
               if(selected_option == "L_ITEM  3"){}
               if(selected_option == "L_ITEM  4"){}
               if(selected_option == "L_ITEM  5"){}
               if(selected_option == "L_ITEM  6"){}
               if(selected_option == "L_ITEM  7"){}
               if(selected_option == "L_ITEM  8"){}
               if(selected_option == "L_ITEM  9"){}
               if(selected_option == "L_ITEM  10"){}
               if(selected_option == "L_ITEM  11"){}
               if(selected_option == "L_ITEM  12"){}
               if(selected_option == "L_ITEM  13"){}
               if(selected_option == "L_ITEM  14"){}
               if(selected_option == "L_ITEM  16"){}
               if(selected_option == "L_ITEM  17"){}
               if(selected_option == "L_ITEM  18"){}
               if(selected_option == "L_ITEM  19"){}
               if(selected_option == "L_ITEM  20"){}
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  ...
  }
}

这只是垃圾。这段代码自然不会被编译。文件中没有定义任何案例常量。开关在箱子里面。缩进的方式仿佛是想迷惑一个可怜的用户。有一大堆低效的代码,如if(selected_option == "L_ITEM 1"){}总之,它是悲观的,末日的。

 
Vasiliy Sokolov:

我已经看了一下。这是一个混乱的局面。该文件几乎完全被On_Gui_Event函数所占据,长达600行。这里是它的一个片段(拼写和标点符号被保留了)。

这只是垃圾。这段代码自然不会被编译。文件中没有定义任何案例常量。开关在箱子里面。缩进的方式仿佛是想迷惑一个可怜的用户。很多只是低效的代码,如if(selected_option == "L_ITEM 1"){}总之,它是阴郁的。

瓦西里,你让我笑得很厉害。))为什么你要尝试编译你手上的所有东西呢?)

这是一个GUI连接文件的例子。问问奥列格-帕普科夫如何工作。什么样的 "低效代码"?正常的代码,它是为了尽可能的清晰。

原因: