众包的GUI。公开测试。 - 页 16

 
Nikolai Semko:

我还是不明白。对于一个指标或EA与你的gui一起工作,其他东西(内核、引擎等)是否必须平行运行?

现在不一样了。该引擎是一个开放的包容性文件。它的连接方式如上一篇文章中的插图所示。再仔细看看。

#include<GUI_DRIVE.mqh>
Документация по MQL5: Файловые операции / FileOpen
Документация по MQL5: Файловые операции / FileOpen
  • www.mql5.com
[in]  Имя открываемого файла, может содержать подпапки. Если файл открывается для записи, то указанные подпапки будут созданы в случае их отсутствия. [in]  значение, используемое в качестве разделителя в txt или csv-файле. Если для csv-файла разделитель не указан, то по умолчанию используется символ табуляции. Если для txt-файла разделитель не...
 

Реter Konow
:

现在不一样了。该引擎是一个开放的包容性文件。如上一篇文章中的插图所示,进行了连接。再仔细看看。

那就好。
但我如何从我的程序中读取和/或改变第一个界面窗口中的一些元素?它看起来像什么?
在我的例子中,它看起来像这样

if (myGUI.win[0].ChecBox[2].isCheck())   myGUI.win[1].TextLabel[5].text  =  DoubleToString(rates[0].close,_Digits);

 
Nikolai Semko:

好吧,那么。
但我如何从我的程序中读取和/或改变第一个界面窗口中的一些元素?它看起来像什么?
在我的例子中,它看起来像这样


更简单。控件的 所有功能都被自动命名并打印到api文件。需要获得或改变一个复选框?你开始写它的名字,intellisense会给你一个具有类似名字的复选框列表。

这是你写反应的地方。

//=====================================================================================================================
//WINDOW:   Menu | element: CHECKBOX  | name: Simple checkbox  |  Location: Window's Main Frame
//=====================================================================================================================
case CHECKBOX3___Simple_checkbox:
               //------------------------------------------------------------------------------------------------------
               //What to do when checkbox checked or unchecked?
               //------------------------------------------------------------------------------------------------------
               switch((int)action)
               {
                case checked:     break;
  
                case unchecked:     break;
               }
               //------------------------------------------------------------------------------------------------------
               //Your comment:
               //------------------------------------------------------------------------------------------------------
               break;
  
//=====================================================================================================================


而这是他的挑战。

E_Menu_Simple_checkbox(); 

它以前缀E_开始,然后是窗口名称和项目名称。Intellisense会处理好这个问题。你不需要记住一切。

 
Nikolai Semko:

好吧,那么。
但我如何从我的程序中读取和/或改变第一个界面窗口中的一个元素?它看起来像什么?
在我的例子中,它看起来像这样


图形化构造器可以创建定义,例如。

#define  close_prise_of_last_bar myGUI.win[1].TextLabel[5].text
#define  show_last_price myGUI.win[0].ChecBox[2].isCheck()

然后你就可以使代码更易读。

if (show_last_price)  close_prise_of_last_bar  =  DoubleToString(rates[0].close,_Digits);
 
Nikolai Semko:

图形化构造器可以创建定义,例如。

然后你就可以使代码更易读。

所有这些都已经存在了很长时间。它已经被测试了一年了。

 
Реter Konow:

更简单。所有的控制功能都被自动命名并打印到api文件。需要获得或改变一个复选框? 你开始写它的名字,intellisense就会给你一个类似名字的复选框的选择。

这是你写反应的地方。


而这是他的挑战。

它以前缀E_开始,然后是窗口名称和项目名称。Intellisense会处理好这个问题。你不需要记住所有的事情。

不懂

 
Nikolai Semko:

我不明白。

你插入三个文件,你就拥有了在编辑器中创建的所有gui的完全所有权。这再简单不过了。

 
是否可以通过代码创建图形元素
 
Aliaksandr Hryshyn:
是否可以通过代码创建图形元素?
这没有任何意义。如果只是通过标记语言的代码。编辑是最简单的选择。
 
Реter Konow:
这毫无意义。如果只是在标记语言的代码中。编辑是最简单的选择。

看看无状态gui是如何工作的(谷歌)。

if (Button("hello world!")) {

printf("fck u self");

}

它在画画的同时也对按钮作出反应