文章 "图形界面 X: 排序、重建表格和单元格中的控件 (集成编译 11)" - 页 4 12345678910 新评论 Konstantin 2017.04.19 15:29 #31 Anatoli Kazharski:1.当您为正在开发的 MQL 应用程序创建一个图形界面,并为其添加一些交易功能时,您可能需要在加载/重载程序时初始化程序的值。这只是一个例子,因为它应该在自定义CProgram 类中运行。稍后,当我完成程序库的开发工作后,我将展示一些更具体的示例。第二阶段将很快完成,届时将有可能展示使用该库的 MQL 应用程序的实际示例。2.表单也应设置类似的伸展属性。3.是的,必须的。//---附注: 目前最新版本的库在这篇文章中:GUIs X: Text selection in a multi-line input field (build 13)。 谢谢,顺便说一句,我注意到了一个数组溢出错误,如果你在示例 11_01 中选择最后一行并删除例如第一行,然后再次选择最后一行,你会得到以下结果:2017.04.19 20:27:52.564 TestLibrary11_01 (RUAL,H1) 'CanvasTable.mqh' 中的数组超出范围 (1897,19)不要注意 TestLibrary11_01 这个名称,这是示例 11_01,该库是最新版本,即第 13 版。还有一个问题,由于默认步长太小,用什么方法来改变滚动滑块的点击步长? Anatoli Kazharski 2017.04.19 15:46 #32 Konstantin: 1. 谢谢,顺便说一下,我注意到一个数组溢出错误,如果在示例 11_01中 选择最后一行并删除例如第一行,然后再次选择最后一行,我们会得到:2017.04.19 20:27:52.564 TestLibrary11_01 (RUAL,H1) 'CanvasTable.mqh' 中的数组超出范围 (1897,19)2.另一个问题是,由于默认步长太小,使用什么方法来更改滚动滑块的点击步长?1.我会检查并在下次更新时修复。2.尚未实现。会实现的。 Konstantin 2017.04.19 16:50 #33 如果只需要表格功能,并且必须 绑定到CWindow 窗体,是否可以不激活?1. 菜单控件2.用于删除表格的按钮3.如何更新表格中的单元格值?(问题已删除,我在SetValue 方法中看到了重绘 参数):))4.不太清楚SetValue(const uint column_index,const uint row_index,const string value="",const uintdigits=0,const bool redraw=false) 方法,为什么将存储数据分为字符串类型和实数类型?我认为在表格中存储字符串 更好。但如果有必要,最好还是有策略地创建两个方法。我不明白如何使用 OnInitEvent 方法,我将等待示例。 Discussion of article "Graphical 图形界面 XI: 表格单元中的文本编辑框和组合框 (统合构建15) 图形界面 X: 时间控件, 复选框列表控件和表格排序 Anatoli Kazharski 2017.04.19 17:01 #34 Konstantin:如果只需要表格功能,并且必须 绑定到CWindow 窗体,是否可以不激活?1. 菜单控件2.用于删除表格的按钮3.如何更新表格中的单元格值?关于 OnInitEvent 方法的使用,我无法理解,我将等待示例。1.在 MQL 应用程序 CProgram 的用户类中,您可以自行构建图形界面。因此,如果您不需要主菜单,就不要在该类中创建这些元素。2.不需要,这是表单上的一个强制按钮。单击该按钮不会意外地将应用程序从图形中删除,因为会显示一个确认此操作的窗口。3.请参阅本文中的示例:图形界面 X:已绘制表格的更新和代码优化(第 10 版)。简而言之,使用CCanvasTable::SetValue() 方法。 Konstantin 2017.04.19 17:08 #35 Anatoli Kazharski:1.在 MQL 应用程序 CProgram 的用户类中,您可以自行构建图形界面。因此,如果您不需要主菜单,就不要在该类中创建这些元素。2.否。这是表单上的一个强制按钮。单击该按钮不会意外地将应用程序从图形中移除,因为会显示一个确认该操作的窗口。3.请参阅本文中的示例:图形界面 X:已绘制表格的更新和代码优化(第 10 版)。简而言之,请使用CCanvasTable::SetValue() 方法。 关于第 2 点,请为表格选择按钮,即使是 MessageBox 也有可定制的按钮集。在 Qt 中也可以更改按钮集,在标准库 MetaQuotes 中也可以更改按钮集。 Anatoli Kazharski 2017.04.19 17:12 #36 Konstantin:...4.SetValue(const uint column_index,const uint row_index,const string value="",const uint digits=0,const bool redraw=false) 方法不太清楚,为什么要把存储数据分为字符串类型和实数类型?我认为最好将字符串 存储在表格中。但如果有必要,最好还是有策略地创建两个方法。 我不明白数据类型。它们都存储为字符串。数据类型是通过DataType() 方法为每一列指定的,用于排序。通过SetValue() 方法中的digits 参数,可以分别指定每个单元格分隔符后的位数。 Anatoli Kazharski 2017.04.19 17:15 #37 Konstantin: 关于第 2 点,请为表单选择按钮,即使是 MessageBox 也有可定制的按钮集。在 Qt 中也可以更改按钮集,在标准库 MetaQuotes 中也可以更改按钮集。现在的按钮有 关闭窗口折叠/展开窗口工具提示。您还需要什么? Konstantin 2017.04.19 17:24 #38 Anatoli Kazharski:现在有按钮了: 关闭窗口折叠/展开窗口工具提示。您还需要什么? 我说的是它们,这组按钮应该是可变的,你并不总是需要所有这三个按钮 )) Konstantin 2017.04.19 17:28 #39 Anatoli Kazharski: 我不明白数据类型。它们都存储为字符串。使用DataType() 方法可以为每一列指定数据类型,以便进行排序。通过SetValue() 方法中的digits 参数,可以分别指定每个单元格分隔符后的位数。))) 现在我明白了,DataType() 默认情况下是什么类型?还是没有默认状态,需要在将存储值添加到单元格之前确定其类型?PS.我忘了写了,菜单中并不总是加载资源图片,不过可能是因为我坐在虚拟环境中。 Anatoli Kazharski 2017.04.19 17:28 #40 Konstantin: 我说的是它们,这组按钮应该是可更换的,你并不总是需要所有这三个按钮 ))2 和 3 现在已经可以不用了。在CProgram 用户类的表单创建方法中不要调用方法: m_window.UseRollButton(); m_window.UseTooltipsButton(); 12345678910 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
1.当您为正在开发的 MQL 应用程序创建一个图形界面,并为其添加一些交易功能时,您可能需要在加载/重载程序时初始化程序的值。这只是一个例子,因为它应该在自定义CProgram 类中运行。稍后,当我完成程序库的开发工作后,我将展示一些更具体的示例。第二阶段将很快完成,届时将有可能展示使用该库的 MQL 应用程序的实际示例。
2.表单也应设置类似的伸展属性。
3.是的,必须的。
//---
附注: 目前最新版本的库在这篇文章中:GUIs X: Text selection in a multi-line input field (build 13)。
谢谢,顺便说一句,我注意到了一个数组溢出错误,如果你在示例 11_01 中选择最后一行并删除例如第一行,然后再次选择最后一行,你会得到以下结果:
2017.04.19 20:27:52.564 TestLibrary11_01 (RUAL,H1) 'CanvasTable.mqh' 中的数组超出范围 (1897,19)
还有一个问题,由于默认步长太小,用什么方法来改变滚动滑块的点击步长?
1. 谢谢,顺便说一下,我注意到一个数组溢出错误,如果在示例 11_01中 选择最后一行并删除例如第一行,然后再次选择最后一行,我们会得到:2017.04.19 20:27:52.564 TestLibrary11_01 (RUAL,H1) 'CanvasTable.mqh' 中的数组超出范围 (1897,19)
2.另一个问题是,由于默认步长太小,使用什么方法来更改滚动滑块的点击步长?
1.我会检查并在下次更新时修复。
2.尚未实现。会实现的。
如果只需要表格功能,并且必须 绑定到CWindow 窗体,是否可以不激活?
1. 菜单控件
2.用于删除表格的按钮
3.如何更新表格中的单元格值?(问题已删除,我在SetValue 方法中看到了重绘 参数):))
4.不太清楚SetValue(const uint column_index,const uint row_index,const string value="",const uintdigits=0,const bool redraw=false) 方法,为什么将存储数据分为字符串类型和实数类型?我认为在表格中存储字符串 更好。但如果有必要,最好还是有策略地创建两个方法。
我不明白如何使用 OnInitEvent 方法,我将等待示例。
如果只需要表格功能,并且必须 绑定到CWindow 窗体,是否可以不激活?
1. 菜单控件
2.用于删除表格的按钮
3.如何更新表格中的单元格值?
关于 OnInitEvent 方法的使用,我无法理解,我将等待示例。
1.在 MQL 应用程序 CProgram 的用户类中,您可以自行构建图形界面。因此,如果您不需要主菜单,就不要在该类中创建这些元素。
2.不需要,这是表单上的一个强制按钮。单击该按钮不会意外地将应用程序从图形中删除,因为会显示一个确认此操作的窗口。
3.请参阅本文中的示例:图形界面 X:已绘制表格的更新和代码优化(第 10 版)。简而言之,使用CCanvasTable::SetValue() 方法。
1.在 MQL 应用程序 CProgram 的用户类中,您可以自行构建图形界面。因此,如果您不需要主菜单,就不要在该类中创建这些元素。
2.否。这是表单上的一个强制按钮。单击该按钮不会意外地将应用程序从图形中移除,因为会显示一个确认该操作的窗口。
3.请参阅本文中的示例:图形界面 X:已绘制表格的更新和代码优化(第 10 版)。简而言之,请使用CCanvasTable::SetValue() 方法。
关于第 2 点,请为表格选择按钮,即使是 MessageBox 也有可定制的按钮集。在 Qt 中也可以更改按钮集,在标准库 MetaQuotes 中也可以更改按钮集。
...
4.SetValue(const uint column_index,const uint row_index,const string value="",const uint digits=0,const bool redraw=false) 方法不太清楚,为什么要把存储数据分为字符串类型和实数类型?我认为最好将字符串 存储在表格中。但如果有必要,最好还是有策略地创建两个方法。
关于第 2 点,请为表单选择按钮,即使是 MessageBox 也有可定制的按钮集。在 Qt 中也可以更改按钮集,在标准库 MetaQuotes 中也可以更改按钮集。
现在的按钮有
您还需要什么?
现在有按钮了:
您还需要什么?
我说的是它们,这组按钮应该是可变的,你并不总是需要所有这三个按钮 ))
我不明白数据类型。它们都存储为字符串。使用DataType() 方法可以为每一列指定数据类型,以便进行排序。通过SetValue() 方法中的digits 参数,可以分别指定每个单元格分隔符后的位数。
))) 现在我明白了,DataType() 默认情况下是什么类型?还是没有默认状态,需要在将存储值添加到单元格之前确定其类型?
PS.我忘了写了,菜单中并不总是加载资源图片,不过可能是因为我坐在虚拟环境中。
我说的是它们,这组按钮应该是可更换的,你并不总是需要所有这三个按钮 ))
2 和 3 现在已经可以不用了。在CProgram 用户类的表单创建方法中不要调用方法: