RannForex-Server - Europe
MetaQuotes-Demo - Europe
FXOpen-MT5 - USA
Alpari-MT5 - Europe
Tickmill-Live - USA
ICMarketsSC-MT5-2 - USA
Darwinex-Live - USA
// Элемент БД.class DATA
{
private:
staticint Count;
public:
int Num;
DATA() : Num(DATA::Count++) {}
};
staticint DATA::Count = 0;
#define SIZE 5// БД.class A
{
private:
static DATA DataArray[SIZE]; // База данных.static DATA* Data; // Выбранный элемент БД.public:
staticvoid Set( constint Num ) // Выбор элемента и перемешение элементов БД.
{
A::Data = &A::DataArray[Num % SIZE];
::ArrayReverse(A::DataArray); // Перемешение элементов БД.
}
staticint Get() { return(A::Data.Num); } // Получение значения элемента.
};
static DATA A::DataArray[5];
static DATA* A::Data;
每次从数据库中选择一个项目,其元素就会混合。这是人为的,但有必要解释一下。
在这里,我们需要做以下工作。
voidOnStart()
{
A::Set(2);
Print(A::Get()); // Какое-то значение Value.// Перемешиваем БД.MathSrand((int)TimeLocal());
for (int i = MathRand(); i >= 0; i--)
A::Set(i);
Print(A::Get()); // Что-то образовалось. Print(A::Get()); // Здесь хочется получить Value.
}
代码说明:第一次选择一个元素,然后多次选择。我们需要获取第一次选择的元素。
我们需要以某种方式添加一个 DB 类,这样就可以做到这一点。同时,我们无法访问指向元素的指针 (DATA*)。
// БД.class A
{
// Тело класса до решения задачи.// .....// В БД-класс дописываются эти строки.public:
class POINTER
{
private:
DATA* Data;
public:
POINTER() : Data(A::Data) {}
void Set() const { A::Data = this.Data; }
};
};
之后,OnStart 就会变成这样。
voidOnStart()
{
A::Set(2);
Print(A::Get()); // Какое-то значение Value.
A::POINTER Pointer; // Запоминание элемента без доступа к нему.// Перемешиваем БД.MathSrand((int)TimeLocal());
for (int i = MathRand(); i >= 0; i--)
A::Set(i);
Print(A::Get()); // Что-то образовалось.
Pointer.Set(); // Запомненный элемент становится выбранным в БД.Print(A::Get()); // Здесь хочется получить Value.
}
已添加。
以前写作时不使用常量的人现在不能这样做了。否则会出现错误。
这项创新似乎会给以前编写的代码带来严重的错误。
对不起。"TRADE_EVENT_POSITION_OPEN =0x1" x1 是事件列表的第一位????。我的意思是,在枚举事件部分,你可以让每个位都像这样可用吗?
请告诉我。
有两种类型的经纪商可以转换美国/欧洲时间。因此,过夜时间会发生变化。
经纪商类型可自动确定。
某些经纪商的启动结果。
RannForex-Server - Europe MetaQuotes-Demo - Europe FXOpen-MT5 - USA Alpari-MT5 - Europe Tickmill-Live - USA ICMarketsSC-MT5-2 - USA Darwinex-Live - USA
您好!
我不知道我是否在正确的主题中提出了我的问题...
问题的实质是--我基于标准库中 的 AppDialog 制作了一个带有按钮、输入框和标签的面板。
客户抱怨说,通过 Windows 个性化设置放大时,只有字体被放大、
面板上只有字体按比例放大,但控件本身却没有按比例放大,因此,题词超出了控件边界。
怎样才能解决这个问题,使字体、面板元素和面板本身的大小都按比例缩放呢?
当然,我有一个小储备,我可以稍微增大元素的尺寸,然后如果我将屏幕参数增加到 125%
一切都会合适,但如果增加到 150%,就什么都不合适了。
因此我想从根本上解决这个问题,使面板上的元素和面板本身也按比例增加。怎么做呢?
我知道有必要以某种方式,可能是通过 WIN IP 来获得这个比例数字--100%、125% 或 150%。问题是如何在 EA 代码中实现?
附带说明一下。程序使用标准 MQL5 库,但它是用 MQL4 编写的。
感谢各位的回复....。
客户抱怨说,当通过 Windows 个性化设置放大时、
面板上只有字体按比例放大,但控件本身却没有按比例放大,因此题字超出了控件边界。
怎样才能解决这个问题,使字体、面板元素和面板本身的尺寸都按比例放大?
当然,我有一个小的储备,我可以稍微增大元素的尺寸,然后当我将屏幕参数增大到 125%。
一切都会合适,但如果增加到 150%,就什么都不合适了。
因此,我想从根本上解决这个问题,使面板上的元素和面板本身也按比例增加。怎么做呢?
我知道有必要以某种方式,可能是通过 WIN IP 来获得这个比例数字--100%、125% 或 150%。问题是如何在 EA 代码中实现?
附带说明。程序使用标准 MQL5 库,但它是用 MQL4 编写的。
我预先感谢所有回复者....。
在使用 TextSetFont() 和 TextGetSize() 创建对象之前,请尝试定义文本大小。
在创建对象之前,尝试通过 TextSetFont() 和 TextGetSize() 定义文本的大小
我设法组装了一辆自行车,并付诸实践。我试着简单介绍一下。
有这样一种使用数据库的工作。
每次从数据库中选择一个项目,其元素就会混合。这是人为的,但有必要解释一下。
在这里,我们需要做以下工作。
代码说明:第一次选择一个元素,然后多次选择。我们需要获取第一次选择的元素。
我们需要以某种方式添加一个 DB 类,这样就可以做到这一点。同时,我们无法访问指向元素的指针 (DATA*)。
代码解释:第一次选择了一个元素,然后又选择了很多次。我们需要获取第一次选中的项目。
我们需要添加一个数据库类来实现这一点。与此同时,我们无法访问指向元素的指针 (DATA*)。
解决办法是在 DB 类中添加几行。
之后,OnStart 就会变成这样。
之所以可以这样做,是因为主类主体中定义的类可以访问主类的隐藏静态成员。
类可以访问主类的隐藏静态成员。
我希望这不是 MQL 语言的缺陷,而是一个方便的标准(功能)。
我希望这不是 MQL 语言的缺陷,而是一种方便的标准(功能)。