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

 

这就是他。我见过他。勾勒了一幅草图。会议很短--他在使劲地胡言乱语,我没听懂多少,但当他在歪歪扭扭的显示屏上展示两个3和一个20,沾满了松散的泥土时,我知道那是日期。然后,在它自己扬起的尘土中消失了,仿佛它从未存在过。



他将出现。

 

辅助标记。



我还将添加一个网格和一些噱头。

 

属性窗口。


 

哈哈...
等到彼得最终以这种速度踢掉所有人的屁股。

当然,如果巴解组织能骑上马的话,ZS。

 
Nikolai Semko:

哈哈...
等着看吧,按照这个速度,彼得最终会打败所有人。

当然,如果巴解组织能够把握住的话,ZS。

说实话,尼古拉,我长期以来一直容忍对我工作的不公平评估。每个人都以其代码风格来判断。我没有机会展示我的方法的真正力量,不得不用语言证明一些东西。甚至当我发表了一个标记语言时,也没有帮助。人们没有设法充分地估计事情。现在,一切都将变得不同。视觉编辑器会让我们 "感觉 "到真实的结果,每个人都会亲眼看到。 这一次,评估将是客观的。我将打破 "外星人 "的形象就行了。

 

彼得,问题不在于人,你没能正确评估

我们可以在这里讨论,我有半个小时的时间来做。

 
你可以试试你的热情和我的热情
 
Реter Konow:


彼得,但主要问题仍未解决。
如何为普通用户使用你的创作?

当然,我没有看到任何引擎或内核,我只看到一个插件库和一个生成你的视觉构造器的mqh文件(做为一个普通的指标,嗯,或EA)。

在我看来,它应该是这样的。

//+------------------------------------------------------------------+
//|                                                 TestPeterGui.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#include "myGUI.mqh"        // это файл сгенерированный визуальным конструктором, он содержит 
                            // созданный экземпляр класса CGuiFromPeter с именем myGUI, который 
                            // и есть уже созданный в визуальном конструкторе ГУИ, который может 
                            // состоять из любого количества окон 
#include <GuiFromPeter.mqh> // это главная библиотека, которую необязательно указывать, т.к. эта строка может быть в предыдущем файле


int OnInit()
  {
   myGUI.init();  // возможно это не обязательно
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
   myGUI.deinit();  // возможно это не обязательно
  }

void OnTick()
  {
   myGUI.OnTick();
   MqlRates rates[];
   int start_pos=0,count=1;
   if(CopyRates(_Symbol,_Period,start_pos,count,rates)!=count) return;
   if (myGUI.win[0].ChecBox[2].isCheck())   myGUI.win[1].TextLabel[5].text  =  DoubleToString(rates[0].close,_Digits);
   if (myGUI.win[1].ChecBox[3].isCheck())   myGUI.win[1].TextLabel[6].text  =  DoubleToString(rates[0].high,_Digits);
   myGUI.Update();  
  }

void OnTimer()
  {
   myGUI.onTimer(); 
   
  }

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   myGUI.onChartEvent(id,lparam,dparam,sparam);   
  }
//+------------------------------------------------------------------+

这样一来,至少一切都将是显而易见和可以理解的。即使是初学者 也可以从第一天开始使用它。

在深圳,最好用定义来取代对象数组中的元素(例如TextLabel[6]),在myGUI.mqh中,这些定义的名字已经比较好理解了 - 例如hight_price_of_last_bar

 
Nikolai Semko:

彼得,但主要问题仍未解决。
一个普通用户如何使用你的创作?

当然,我没有看到任何引擎或内核,我只看到一个插件库和一个生成你的视觉构造器的mqh文件(作为一个普通指标,或者,作为一个EA)。

在我看来,它应该是这样的。

这样一来,至少一切都将是显而易见和可以理解的。而且任何,即使是一个新手程序员 也可以从第一天开始使用它。

这就是它的模样。自从有了标记语言之后。这正是描述中的连接方式。

 
Реter Konow:

这就是它的模样。

也就是说,你是否已经把代码改写成了类?