MetaTrader 4 Build 529测试版发布,带有新的编译器 - 页 51

 
Barbarian:

你是否尝试过其他课程?他们不是也在工作吗?

我看了一些,但不是全部。我根据需要(写程序)进行尝试。有时我把插头放进去(在没有用的地方),直到时机成熟。

我看了看Canvas类,该类方法使用了MQL5的函数。这很可能是问题的原因。例如,方法?

方法使用MQL5中的TextSetFont,这可能还没有在MQL4中实现。然而,它已经存在于帮助描述中。也许,他们忘记了实施。

顺便说一下,开发人员在编辑器中的语法高亮方面确实做得很好。将类方法与语言函数区分开来是非常有帮助的。

我知道,在5-6个版本之前,所有的东西都已经在那里工作了,包括TextSetFont(),例如,这段代码工作得很好。

    Label = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();

只是后来禁用了//希望是暂时的:)

当它工作时--它按规格工作。

 
MetaDriver:
我看了一些,但不是全部。 我根据需要进行尝试(我在写一个程序)。有时我把插头插进去(在不工作的地方),直到事情好转。

我知道。所有的东西在5-6个版本之前就已经在那里工作了,包括TextSetFont(),例如,这段代码工作得很好。

它只是后来被禁用了 // 希望是暂时的 :)

当它工作时--它按照规格工作。

在那一刻,它是非常奇怪的。如果从一开始就启用它来扩展功能,那么禁用它就没有意义。总的来说,如果能得到一个带有变化和修复错误清单的更新版本就更好了。我们在分析新的МТ4时会有更多的问题。

顺便说一下,有一个错误。new操作符并不像C++中那样返回分配的内存指针。要像这样做。

    CCanvas Label;// = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();

或像这样。

    CCanvas* Label = new CCanvas();      
    Label.CreateBitmapLabel("MyLabel",150,150,250,150,//COLOR_FORMAT_ARGB_RAW);
     COLOR_FORMAT_ARGB_NORMALIZE);
    Label.FillRectangle(5,5,220,120,ColorToARGB(BkColor,220));
    //0xffbbbb66);
    if(!Label.FontSet("Comic Sans MS",28,FW_BOLD)) Print(GetLastError());
    Label.TextOut(15,5,"Превед Label",ColorToARGB(0x004400,255));
    if(!Label.FontSet("Comic Sans MS",32,FONT_ITALIC|FONT_UNDERLINE|FW_LIGHT,-100)) Print(GetLastError());
    Label.TextOut(15,35,"Превед Label",ColorToARGB(0x004400,255));
    Label.Update();
    
    delete Label;

而且会有效果。阅读https://www.mql5.com/ru/docs/basis/types/object_pointers。 我一开始也是跌跌撞撞的,忘记了C++。

 
artmedia70:


我在设置中的 "社区 "标签里有我的昵称和密码。我在编辑器导航器中选择必要的文件,然后选择MQL5存储-->添加,导航器中的文件名被标记为蓝色 "+"。似乎是添加的。即使是那些以前添加过,但后来被修改过的文件,也会在红圈中用"!"标记出来。似乎有区别。但我在版本库本身找不到任何添加的文件。

怎么了?


是的,它(存储)是有效的,不一定是100%(可能还没有搞清楚保存版本的问题),但它是有效的。

只需点击省略号 ...- 我有这个初始文件夹,里面有两个文件夹(项目 和个人)。

 
ALXIMIKS:


是的,它(存储)是有效的,不是百分之百的(也许我还没有搞清楚关于版本保存的问题),但它是有效的。

只需点击省略号 ...- 我有一个初始文件夹,里面有两个文件夹(项目和个人)。

当然是点击了。回到上一级别。
 
artmedia70:
我当然会这样做。前往上一级别。


你添加的文件是否有一个带勾的绿色圆圈?

你必须先通过MQL Storeg ==>添加,然后点击文件或文件夹,通过PCM ==>提交。

 
ALXIMIKS:


你是否在添加的文件中看到一个带勾的绿圈?

你必须先通过MQL Storeg ==>添加,然后点击文件或文件夹,通过PCM ==>提交。

谢谢,我会试一试的。没有这样做。
 
ALXIMIKS:


你是否在添加的文件中看到一个带勾的绿圈?

你必须先通过MQL Storeg ==>添加,然后点击文件或文件夹,通过PCM ==>提交。

没错,你是对的。这很有帮助;)
 
Barbarian:

顺便说一下,开发人员在编辑器的语法高亮方面做得很好。

是的,我非常喜欢这个颜色方案。我想在工作室里也这样做 :-)
 
Barbarian:

那就很奇怪了。如果从一开始就开启了扩展功能,为什么还要把它关掉。

如果对图表代码进行彻底改革,这是有道理的。而且可能是这样(因为有很多新功能要运行)。


总的来说,如果能得到一个带有变化和修复错误清单的更新版本,那就真的很好。我们将有更少的爬行来学习新的МТ4。

这将是。这将是在一个理想的情况下。现实上,它是相当的资源密集型。要把所有的变化收集到一个列表中...与不同的人在不同的模块 上工作...

顺便说一下,你有一个错误。new操作符并不像C++中那样返回分配的内存指针。要像这样做。

不,那里没有错误,指针是在代码上面声明的(我只发了一个片段)。谢谢你的努力帮助。
 
MetaDriver:
如果图表代码正在被彻底改革,那就说得通了。而且可能是这样(因为有很多新功能要推出)。

它是。最好是这样。现实上这是相当密集的资源。把所有的变化放在一个列表中...与不同的人在不同的模块上工作...

不,那里没有错误,指针是在代码上面声明的(我只发了一个片段)。谢谢你的帮助。

指针是在代码上方声明的,这一点很清楚,虽然不完全是:)总之我运行了你的代码和我的修正,我的两个变体都工作了。顺便说一句,我仍然不明白,当改变新运算符 的工作方式时,开发者是以什么为指导的,与C++不同。我不明白为什么指向句柄的指针要比指向内存中的地址的指针好。