文章 "“傻瓜式”MQL:如何设计和构建对象类" - 页 2 123456 新评论 Vasily 2010.04.14 16:01 #11 为了确保万无一失,我刚把终端升级到可下载的版本。更新了库,这是肯定的。运行终端,打开文件,就是它了。我很喜欢按钮的分组 =)))))) Документация по MQL5: Файловые операции / FileOpen www.mql5.com Файловые операции / FileOpen - Документация по MQL5 Vasily 2010.04.14 16:15 #12 请您将此应用程序所需的所有文件上传到一个压缩包中,并尊重压缩包的结构,使其只有一个 MQL5 文件夹。我已检查过所有文件都能正常打开,内容可读。 Automated-Trading 2010.04.14 16:22 #13 CoreWinTT:请将此应用程序所需的所有文件上传到一个存档中,并遵守结构,以便有一个 MQL5 文件夹。我已检查过所有文件都能正常打开,内容可读。 已通过私人消息发送给您。 Vasily 2010.04.14 16:32 #14 谢谢。现在一切正常了,编译也正常了,问题可能出在上传到服务器的位文件上,或者是下载时出错了,但我没有注意到。一般来说,单独下载超过 5 个文件是非常不方便的,如果能制作一个存档或整个安装程序就更好了。我会继续了解,并尝试将其放到某个地方,我会报告结果。总的来说,我非常喜欢十字按钮的功能。但最小化按钮令人失望 ........不工作,而且在我的理解中,它应该在以下几行下面最小化? Vasily 2010.04.14 17:15 #15 总的来说,这篇文章信息量很大,只是大量引用了 "维基百科"。于是,它变成了这样一个菜单的专业构造函数,在上面点击并添加一切内容,总的来说,它是有效的。如果能有一些简单的手册,说明如何访问这个奇迹的单元格,那就更好了。让我们假设 Expert Advisor 在 tick 事件中读取单元格中的值。在启动过程中,这些单元格将填入输入参数。或者,我必须自己编写这样的程序????。并将其作为可视化构造函数? Sergey Pavlov 2010.04.14 17:25 #16 感谢您提出的宝贵意见。我已经仔细琢磨了这些意见,并将努力解决其中的大部分问题。 Vasily 2010.04.14 17:43 #17 的类型,形成一系列结构结构数组,供整个程序使用并以这种格式存储数据并能将这些值作为标题[1].2 列。至少使用字符串数据类型 我发现这里已经有类似的东西了。string Mstr[][3]= { {"MACD","",""}, {"NEW1","metod",""}, {"elders","new2",""}, {"Fast","new3",""}, {"Slow","new4",""}, {"Signal","new5",""}, {} };比如二维数组。如果你这样做,它就会责备你。 {"NEW1",""+TrailingStop+"",""},可能 getter 和 setter 无法拆分封装。 Sergey Pavlov 2010.04.14 18:51 #18 每个单元格都有自己独特的名称。将鼠标光标悬停在对象上即可看到。ClassMasterWindowsEXE.mqh 文件展示了如何访问单元格。//+------------------------------------------------------------------+ // // 拦截和处理事件的方法 OnChartEvent() //+------------------------------------------------------------------+ void CMasterWindowsEXE::OnEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { if(on_event) // 事件处理已启用 { //--- 按主窗口中的 START(开始)按钮 if(id==CHARTEVENT_OBJECT_CLICK && StringFind(sparam,"CWin1",0)>=0 && StringFind(sparam,"STR19",0)>0 && StringFind(sparam,".Button",0)>0) { Generator(); } //--- 在 EDIT STR18 编辑器中编辑变量 if(id==CHARTEVENT_OBJECT_ENDEDIT && StringFind(sparam,"CWin1",0)>=0 && StringFind(sparam,"STR18",0)>0) { string textedit=ObjectGetString(0,sparam,OBJPROP_TEXT); if(StringFind(textedit,".",0)>=0) { ObjectSetString(0,sparam,OBJPROP_TEXT,""); ChartRedraw(); MessageBox("文件名不得包含句号!","文件名错误"。,MB_OK); } else nameFile=textedit; } Vasily 2010.04.14 19:21 #19 但在这里,所有字符串参数都变成了也就是说,每个按钮都需要编写一个事件,如 if(id==CHARTEVENT_OBJECT_CLICK && StringFind(sparam,CWin1.STR2.RowType3.Button3,0)>=0 && StringFind(sparam,"STR19",0)>0 && StringFind(sparam,".Button",0)>0) { Generator(); } 按钮 +从诸如此类的字符串中提取值,转换为整数,加一并放回。在事件 ontic 中然后从诸如此类的字符串中提取值,然后将其转换为整数等等。总之,如果有这样一种结构,您就可以设置存储对象的类型,并在类中实现将值转换为字符串的模块。我的理解是正确的,例如可以通过在事件中插入代码 来跟踪加号单元格。 if(id==CHARTEVENT_OBJECT_CLICK && StringFind(sparam,"CWin1.STR2.RowType3.Button3",0)>=0) { Generator(); } Vasily 2010.04.14 19:26 #20 我还想知道最小化按钮是否有效。 123456 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为了确保万无一失,我刚把终端升级到可下载的版本。
更新了库,这是肯定的。
运行终端,打开文件,就是它了。
我很喜欢按钮的分组 =))))))
请您将此应用程序所需的所有文件上传到一个压缩包中,并尊重压缩包的结构,使其只有一个 MQL5 文件夹。
我已检查过所有文件都能正常打开,内容可读。
请将此应用程序所需的所有文件上传到一个存档中,并遵守结构,以便有一个 MQL5 文件夹。
我已检查过所有文件都能正常打开,内容可读。
谢谢。
现在一切正常了,编译也正常了,问题可能出在上传到服务器的位文件上,或者是下载时出错了,但我没有注意到。
一般来说,单独下载超过 5 个文件是非常不方便的,如果能制作一个存档或整个安装程序就更好了。
我会继续了解,并尝试将其放到某个地方,我会报告结果。
总的来说,我非常喜欢十字按钮的功能。
但最小化按钮令人失望 ........
不工作,而且在我的理解中,它应该在以下几行下面最小化?
总的来说,这篇文章信息量很大,只是大量引用了 "维基百科"。
于是,它变成了这样一个菜单的专业构造函数,在上面点击并添加一切内容,总的来说,它是有效的。
如果能有一些简单的手册,说明如何访问这个奇迹的单元格,那就更好了。
让我们假设 Expert Advisor 在 tick 事件中读取单元格中的值。
在启动过程中,这些单元格将填入输入参数。
或者,我必须自己编写这样的程序????。
并将其作为可视化构造函数?
感谢您提出的宝贵意见。我已经仔细琢磨了这些意见,并将努力解决其中的大部分问题。
的类型,形成一系列结构
结构数组,供整个程序使用
并以这种格式存储数据
并能将这些值
作为标题[1].2 列。
至少使用字符串数据类型
我发现这里已经有类似的东西了。
比如二维数组。
如果你这样做,它就会责备你。
可能 getter 和 setter 无法拆分封装。
每个单元格都有自己独特的名称。将鼠标光标悬停在对象上即可看到。ClassMasterWindowsEXE.mqh 文件展示了如何访问单元格。
但在这里,所有字符串参数都变成了
也就是说,每个按钮都需要编写一个事件,如
按钮 +
从诸如此类的字符串中提取值,转换为整数,加一并放回。
在事件 ontic 中
然后
从诸如此类的字符串中提取值,然后将其转换为整数等等。
总之,如果有这样一种结构,您就可以设置存储对象的类型,并在类中实现将值转换为字符串的模块。
我的理解是正确的,例如可以通过在事件中插入代码 来跟踪加号单元格。