#property script_show_inputsinputcolor testColor=clrBlue;// задайте цвет для тестирования//--- структура для представления цвета в RGBstruct RGB
{
uchar blue; // синяя составляющая цветаuchar green; // зеленая составляющая цветаuchar red; // красная составляющая цветаuchar empty; // этот байт не используетсяstring toString(); // функция для получения в виде строки
};
//--- функция для вывода цвета в виде строкиstring RGB::toString(void)
{
string out="("+(string)red+":"+(string)green+":"+(string)blue+")";
return out;
}
//--- структура для хранения встроенного типа color struct builtColor
{
color c;
};
//+------------------------------------------------------------------+//| Script program start function |//+------------------------------------------------------------------+voidOnStart()
{
//--- переменная для хранения в RGB
RGB colorRGB;
//--- переменная для хранения типа color
builtColor test;
test.c=testColor;
//--- приведение двух структур путем копирования содержимого
colorRGB=test;
Print("color ",test.c," = ",colorRGB.toString());
//---
}
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL4 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...
谢谢你!)从你的回答中,我得出结论,对于每一种类型的对象,我都需要制作一个单独的函数。我想,以某种方式,有可能使一个单独的函数开始建立对象,附加到循环中,而主函数则读取文件。斯维奇怎么样?
我可能没有足够深入地了解它。
第一个,所有图形对象的构建,并没有引起任何问题或疑问。但我一定是误解了第二条的意思。显然,问题不在于如何用一个按钮来组织多种类型的对象,而是用一个按钮来组织一种类型的对象。在这种情况下,我会做一个带有对象参数的结构和几个结构数组,每种类型的对象一个数组。而且,我将分别把这些结构数组与相应类型的按钮绑定。
然后,当你按下按钮时,相应的对象类型将被删除。而当按钮被释放时,这些对象将被结构数组中的参数所恢复。
因此,在启动时只需要读取一次文件。
我可能还没有深入了解它。
第一个,所有图形对象的构建,并没有引起任何问题或疑问。但我一定是误解了第二条的意思。显然,问题不在于如何用一个按钮来组织多种类型的对象,而是用一个按钮来组织一种类型的对象。在这种情况下,我会做一个带有对象参数的结构和几个结构数组,每种类型的对象一个数组。因此,我将把这些结构数组与相应类型的按钮绑定。
然后,当你按下按钮时,相应的对象类型将被删除。而当按钮被释放时,这些对象将被结构数组中的参数所恢复。
因此,在加载时只需要读取一次文件。
旗帜是变量。或者bool:false=empty,true=raised或int--那么一个数字中同时有很多标志。0 - 全部省略,1=失去了第一,2=失去了第二,3=失去了第一和第二,4=失去了第三,5=失去了第三和第一,6=失去了第三和第二,7=失去了第一、第二、第三,8=失去了第四 ....嗯,这是用二进制代码。你是如何发现的?
非常感谢你的回答,我将尝试做这两种变体,按照STARIJ的建议通过旗子,你的变体也很有趣,可以尝试一下。 我将尝试少提问题,有答案就好!)
旗帜可能并不坏,但它错过了重点
关于交易、自动交易系统和策略测试的论坛
新手对MQL4的任何问题,对算法和代码的帮助和讨论
WinProject, 2018.01.26 18:17
晚上好,我再一次寻求帮助。我的EA在OnInit有一个主函数,它读取一个文件,并根据不同的条件立即建立不同的图形对象。在图表上还有一个按钮,点击后可以操作删除这些对象的功能,例如,文本标签。如何使在按下按钮后删除文本标签,当释放按钮时,可以不启动整个功能,完全构建所有对象,而是只构建文本标签。我想到的唯一一件事是为每一种类型的对象分别 创建一个类似的主函数,其中包含与打开和读取文件相关的所有动作,但我想使用一些巧妙的解决方案,但我不知道是什么,怎么做,在主函数中还是在按钮的功能中?
你能告诉我如何在MQL5 中获得当前小时的值吗?
我创建了一个MqlDateTime结构的 对象,它没有给出任何信息
你能告诉我如何在MQL5 中获得当前小时的值吗?
我创建了一个MqlDateTime结构的 对象,它没有给出任何信息
该结构需要填写日期-时间。
使用TimeCurrent()? 我只是不明白怎么做。
使用TimeCurrent()? 只是不明白如何
TimeToStruct()
啊,知道了,已经开始工作了,谢谢!
https://docs.mql4.com/ru/basis/types/casting
倒数第二个例子,颜色在RGB中表示为字符串。"通过复制内容来转换两个结构"是行不通的。
编译器产生了以下错误...( '=' - 非法操作 使用 test.mq4 34 12 )
我是不是抄错了什么,还是样本中出现了错误?请告诉我。