时钟 - MetaTrader 5 的库


图书馆(时钟.mqh)允许创建模拟时钟为图形资源。
该库的使用如下面的源代码所示:
// MQL4&5 代码 // 跨平台 Expert Advisor 的示例,它在图表上创建模拟时钟 #财产严格的 #包括//https://www.mql5.com/en/code/19388 常量 细绳对象名称 =__文件__; // 显示时钟的Bitmap对象的名称 常量 细绳资源名称 =“::”+ 对象名称;// 将形成时钟的资源的名称 // 根据相应 INI 文件的设置创建时钟时钟 时钟(“时钟\\Clock01\\Clock01.INI”, 资源名称);空白 启动() { // 创建用于显示时钟的图形对象 对象创建(0, 对象名称,OBJ_BITMAP_LABEL,0,0,0); // 指定时钟所在资源的名称 对象集字符串(0, 对象名称,OBJPROP_BMP文件,0, 资源名称); // 添加选择对象并用鼠标拖动它的可能性 对象集整数(0, 对象名称,OBJPROP_SELECTABLE,真的); // 启用第二个定时器来更新时钟 事件设置定时器(1); }空白 定时器() { // 设置时钟上的当前时间 时钟.设置时间(时间本地()); // 刷新图表以使更改可见 图表重绘(); }
刷新后图表上出现以下时钟:

附带的跨平台时钟.mq5指示器可以立即“开箱即用”使用时钟。
该指示器实现了皮肤的交互式更改:使用键盘上的向上/向下键切换时钟版本(解压缩 ZIP 存档)。
时钟的原件是通过搜索 flash Clock 从网上获取的(swf 文件可在 ZIP 中找到),这很方便,因为它们包含钟面、指针等所需的图形表示。您可以使用任何其他来源。例如,您可以找到现成的矢量文件或自己绘制它们。
INI 文件(参见示例)逐层设置时钟形成的参数。可以在任何文本编辑器中编辑以下设置
图像名称 = ClockFace.bmp 绑定X =0 // bmp图像(图层)内部零点的X坐标绑定Y =0 // bmp图像(图层)内部零点的Y坐标X =0 // 由图层组成的图像内零点的 X 坐标Y=0 // 由图层组成的图像内零点的 Y 坐标旋转=0 // 旋转速度A=100% // 使用的Alpha通道的值R=100% // 使用的红色通道的值G =100% // 使用的绿色通道的值B=100% // 使用的蓝色通道的值
层描述在列表中的位置越低,它比先前描述的层越高。对层数没有特殊限制。
这种图像构造方法允许使用该库来形成任何静态/动态对象,而不仅仅是时钟。为了提供时钟动态,我们只需要设置旋转。然而,其他类型的移动(例如平移、缩放等)只需几行即可添加到代码中。随附的源代码提供了在描述图像时如何实现此方法的示例。
至于时钟,逐层操作使我们能够实现指针和照明的阴影(就像在闪光时钟中所做的那样)。
如果想让表盘透明,则应将相应INI文件中的Alpha通道设置为小于100%:

截至本文发布时,市场上还没有模拟时钟。我发现了这个变体在代码库中。
该库的新功能是图层::旋转用于旋转。也许,这个功能将导致基于类似于时钟的动态图形资源的第三方解决方案的创建。
附件下载
📎 canvas.mqh (0.36 KB)
📎 color.mqh (1.48 KB)
📎 file.mqh (2.45 KB)
📎 image.mqh (1.17 KB)
📎 pixel.mqh (0.33 KB)
📎 settings.mqh (1.26 KB)
📎 clock_layer.mqh (1.55 KB)
📎 layer.mqh (2.05 KB)
📎 clock.mqh (1.65 KB)
📎 clock.mq5 (2.84 KB)
Source: MQL5 #19388
💡 精彩内容推荐
✍️ 楼主最新发布
- •
- •
- •
- •
- •
- •
🔗 您可能感兴趣
- •
- •
- •
- •
- •
- •
