现在可以在mt4图表上设置按钮和文本字段了 - 页 2

 
不错的
 

Ghost,我们有0.3版本,现在正在工作。我不确定0.2版本,但0.3版本肯定支持CHECKBOX和BUTTONS上的文本和bgcolors(其他的还没有实现)。

为了获得复选框的状态,我们将定义新的函数,但目前tbIsClicked(handle)可以检测到点击,所以你可以用内部函数来捕捉状态,因为它可以是1或0。

要获得文本框的值,可以使用

stringtbGetText(handle)

没有计划中的函数来获取Button的值,但是你可以通过以下方法来设置按钮的文本

tbSetText( obj, text, fontsize, fontname )。

这个函数也可以设置标签、文本字段等的值.....。

fx1

 
fx1.net:

在这里,我想介绍一个新的mt4的免费插件作为预览。我目前正在测试一个名为mt4gui的产品。这个产品可以将按钮、文本字段、列表字段直接放在图表上;这里有一张已经工作的预览屏幕截图

http://fx1.net/wiki/uploads/img_7.png

按钮在点击后立即作出反应,而不需要等待经纪商的勾选。我们正在改进这个产品,下周会有更多的功能。我为什么发这个帖子是为了从社区获得 所需的想法。当然,并不是所有的东西都能实现,但我将在这里过滤有趣的想法。

这里有一个例子,非常基本的代码演示了用法。

如何在lib aka diagram中添加对象? Winapi

大有裨益

 

布里塔纳克。

这样的对象在现阶段实现起来非常复杂,因为我们想在1.0版本之前发布所有的普通对象,然后我们可以进入高级主题,但感谢你的建议,让我们知道新的想法。


fx1.net

 

我想我在之前的帖子里说得不是很清楚。让我们再试一下。

1)你的函数 在屏幕上放置按钮的方式与mql中的ObjectCreate略有不同。它并不与一个角绑定。所以要把一个按钮放在与下角有关的地方,有一个负坐标。另外,你的放置是从整个窗口开始的,而不是从一个图表窗口开始的。我并不反对这样做,但是用一般的mql函数在一个负坐标的按钮旁边放置文本是不可能的,或者说我做不到这一点。你的 "pxy "函数和其他函数一样,可以在图表窗口中放置文本,但它没有完成这个工作,因为坐标是不同的。

2)颜色在第2版中不工作。非常感谢你们更新到第三版。绝对没有颜色的问题了。非常好。

3) 我想再一次问你,是否可以使用你的dll的tbPutObject函数将对象放在一个单独的子窗口中。在我看来,如果这样做的话,你的产品会更有价值10倍。它将成为一个贸易控制台,并且在一个窗口中非常容易管理。此外,它将解决第1点中提出的所有坐标问题。

4)我有你在这里张贴的样本和fx1网站上的样本。当然,我也为deinit中的每个对象设置了tbRemove。它只是在专家被删除时没有删除这些对象。我不知道为什么。

我想再一次感谢你的产品。它确实很好,正是我长期以来一直在寻找的东西。

但有一个问题,我想提请您注意。如果MT4的ExpertAdvisor按钮处于关闭状态,点击您的任何按钮都不会发生,这是正确的,但当ExpertAdvisor按钮再次打开时,EA会执行所有的点击命令。只是为了测试,我在ExpertAdvisor关闭时点击了买入和卖出,当我把它打开时,它就买入和卖出。我想这是需要解决的问题。

 

fx1.net :控件 在图表上闪烁得很频繁,你能解决这个问题吗?我想闪烁的频率取决于tick数据。

 
幽灵:请看我的视频;它们根本不会冲刷,这是执行问题。如果你在每次勾选时都 删除并重新应用,这可能会发生,但在其他情况下,它们或多或少是静态的。至少在我这边是这样。你能公布你是如何实现的吗?
 
pro_:

我想我在之前的帖子里说得不是很清楚。让我们再试一下。

1)你的函数在屏幕上放置按钮的方式与mql中的ObjectCreate略有不同。它并不与一个角绑定。所以要把一个按钮放在与下角有关的地方,有一个负坐标。另外,你的放置是从整个窗口开始的,而不是从一个图表窗口开始的。我并不反对这样做,但是用一般的mql函数在一个负坐标的按钮旁边放置文本是不可能的,或者说我做不到这一点。你的 "pxy "函数和其他函数一样,可以在图表窗口中放置文本,但它没有完成这个工作,因为坐标是不同的。


pro_: 是的,MQL是通过设置单独的属性来做到这一点的,并保持位置为正。我相信你可以用负坐标做得更好,这就是为什么我以这种方式实现。关于pxy函数,它能够理解--坐标的轻微修改。是的,整个窗口,因为作为.dll,我们不能看到图表轴等。另一方面,它们看起来是静态的,你可以简单地测量它们的宽度和高度,然后将文本x,y相对于它放置。

2)颜色在第2版中不工作。非常感谢你们更新到第三版。绝对没有颜色的问题了。非常好。

版本3支持按钮、复选框的颜色。


3) 我想再一次问你,是否可以使用你的dll的tbPutObject函数将对象放在一个单独的子窗口中。在我看来,如果这样做的话,你的产品将会更有价值10倍。它将成为一个贸易控制台,并且在一个窗口中非常容易管理。此外,它将解决第1点中提出的所有坐标问题。

主要的工作是将它们放置在图表窗口上。单独的窗口放置将非常容易,但目前我们选择了一种方式。如果我们将它们放置在图表或单独的窗口中,其实现方式略有不同。在以后的版本中,我们可能会支持这一点。我有计划在不改变图表所在的MDI窗口大小的情况下,使图表变得更小。这样,我们就可以在右边或底部有单独的空间来放置额外的按钮。它们将看起来像图表旁边的按钮。


4) 我有你在这里张贴的样本和fx1网站上的样本。当然,我也为deinit中的每个对象设置了tbRemove。它只是在专家被删除时没有删除这些对象。我不知道为什么。

是的,我确认,这曾经工作过。我将检查这个重要的问题

有一个问题,我想提请您注意。如果MT4的ExpertAdvisor按钮处于关闭状态,点击任何按钮都不会发生,这是正确的,但当ExpertAdvisors按钮再次打开时,EA会执行所有的点击命令。只是为了测试,我在ExpertAdvisor关闭时点击了买入和卖出,当我把它打开时,它就买入和卖出。我想这是需要解决的问题。

是的,你说得很对。我没有检查这个问题。我也会努力解决这个问题。

非常感谢您对mt4gui的测试!

 

fx1.net:在发布我的代码之前,我先检查一下你的示例代码。

我使用tbSetText来更新每个刻度 的标签文本,这可能是问题吗?

你是否打算在插件中加入放射状按钮?如果没有,我们怎么能改变复选框的检查状态?

 

tbRemove和tbRemoveAll的错误已经在v0.4版本中修复。

复选框 的支持得到了扩展。

int tbSetChecked(int,bool);

int tbIsChecked(int)。

网站上的演示代码已经更新。