MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 51

 
Barbarian:

Haben Sie andere Kurse ausprobiert? Funktionieren sie nicht auch?

Ich habe mir einiges davon angeschaut, aber nicht alles. Ich probiere es nach Bedarf aus (ich schreibe ein Programm). Manchmal stecke ich Stecker ein (wo es nicht funktioniert), bis die Zeit reif ist.

Ich habe mir die Canvas-Klasse angesehen, und die Methoden der Klasse verwenden die Funktionen von MQL5. Dies ist höchstwahrscheinlich der Grund für das Problem. Zum Beispiel, Methode?

Methode verwendet TextSetFont aus MQL5, das wahrscheinlich noch nicht in MQL4 implementiert wurde. Sie ist jedoch bereits in den Hilfebeschreibungen enthalten. Vielleicht haben sie vergessen, es zu implementieren.

Übrigens, die Entwickler haben bei der Syntaxhervorhebung im Editor wirklich gute Arbeit geleistet. Es ist sehr hilfreich, Klassenmethoden von Sprachfunktionen zu unterscheiden.

Ich bin mir dessen bewusst. 5-6 Builds zuvor funktionierte dort bereits alles, einschließlich TextSetFont(), zum Beispiel funktionierte dieser Code gut:

    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();

nur später deaktiviert // hoffentlich vorübergehend :)

Wenn es funktionierte, dann nach Plan.

 
MetaDriver:
Ich habe mir einiges davon angeschaut, aber nicht alles. Ich probiere es nach Bedarf aus (ich schreibe ein Programm). manchmal setze ich Stecker ein (wo es nicht funktioniert), bis die Dinge besser sind.

Ich bin mir dessen bewusst. Alles funktionierte dort bereits vor 5-6 Builds, einschließlich TextSetFont() z.B. dieser Code funktionierte gut:

es wurde nur später deaktiviert // hoffentlich vorübergehend :)

Wenn es funktionierte, dann gemäß der Spezifikation.

Das ist schon sehr merkwürdig. Es macht keinen Sinn, sie zu deaktivieren, wenn sie von Anfang an aktiviert wurde, um die Funktionalität zu erweitern. Im Allgemeinen wäre es schön, einen aktualisierten Build mit einer Liste der Änderungen und behobenen Fehler zu erhalten. Wir werden mehr Probleme mit der Analyse der neuen МТ4 haben.

Übrigens, es liegt ein Fehler vor. Der new-Operator gibt nicht wie in C++ einen Zeiger auf den zugewiesenen Speicher zurück. Machen Sie es so:

    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();

oder so:

    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;

und es wird funktionieren. Lesen Sie https://www.mql5.com/ru/docs/basis/types/object_pointers. Auch ich stolperte anfangs, weil ich C++ vergessen hatte.

 
artmedia70:


Ich habe meinen Nickname und mein Passwort auf der Registerkarte "Community" in meinen Einstellungen. Ich wähle die gewünschte Datei im Editor-Navigator aus und wähle dann MQL5 Storage --> Add, und der Dateiname wird im Navigator mit einem blauen "+" markiert. Es scheint hinzugefügt zu werden. Auch die Dateien, die bereits hinzugefügt, aber nachträglich geändert wurden, sind mit einem "!" in einem roten Kreis gekennzeichnet. Hier scheint es einen Unterschied zu geben. Aber ich kann im Repository selbst keine hinzugefügten Dateien finden:

Was ist los?


Ja, es funktioniert (Speicherung), nicht unbedingt zu 100 % (ich habe vielleicht noch nicht herausgefunden, wie man Versionen speichert), aber es funktioniert.

Klicken Sie einfach auf die Ellipse ... - Ich habe diesen Ausgangsordner mit 2 Ordnern darin(Projekt und Persönlich).

 
ALXIMIKS:


Ja, das (Speichern) funktioniert, zwar nicht zu 100 Prozent (vielleicht habe ich das mit dem Speichern der Versionen noch nicht herausgefunden), aber es funktioniert.

Klicken Sie einfach auf die Ellipse ... - Ich habe einen Ausgangsordner mit 2 Ordnern darin (Projekt und Persönlich).

Natürlich geklickt. Zurück zur vorherigen Ebene.
 
artmedia70:
Natürlich habe ich das. Zurück zur vorherigen Ebene.


Haben Ihre hinzugefügten Dateien einen grünen Kreis mit einem Häkchen?

müssen Sie zunächst über MQL Storeg ==> Hinzufügen hinzufügen und dann auf die Datei oder den Ordner klicken, um sie/ihn über PCM ==> Übertragen zu übertragen.

 
ALXIMIKS:


Sehen Sie in den hinzugefügten Dateien einen grünen Kreis mit einem Häkchen?

müssen Sie zunächst über MQL Storeg ==> Hinzufügen hinzufügen und dann auf die Datei oder den Ordner klicken, um sie/ihn über PCM ==> Übertragen zu übertragen.

Danke, ich werde es ausprobieren. So habe ich es nicht gemacht.
 
ALXIMIKS:


Sehen Sie in den hinzugefügten Dateien einen grünen Kreis mit einem Häkchen?

müssen Sie zunächst über MQL Storeg ==> Hinzufügen hinzufügen und dann auf die Datei oder den Ordner klicken, um sie/ihn über PCM ==> Übertragen zu übertragen.

Genau, Sie haben Recht. Es hat geholfen ;)
 
Barbarian:

Übrigens, die Entwickler haben bei der Syntaxhervorhebung im Editor ganze Arbeit geleistet.

Ja, das Farbschema gefällt mir sehr gut. Ich will das Gleiche im Studio :-)
 
Barbarian:

Das ist schon sehr seltsam. Warum sollte man sie abschalten, wenn sie von Anfang an eingeschaltet war, um die Funktionalität zu erweitern.

Es macht Sinn, wenn die Kartenordnung radikal reformiert wird. Und das ist es wahrscheinlich auch (da es eine Menge neuer Funktionen gibt, die ausgeführt werden müssen).


Im Allgemeinen wäre es wirklich gut, einen aktualisierten Build mit einer Liste der Änderungen und behobenen Fehler zu erhalten. Wir werden beim Studium der neuen МТ4 weniger herumkriechen müssen.

Das wäre es. In einer idealen Situation wäre das der Fall. Realistisch betrachtet, ist das ziemlich ressourcenintensiv. Um alle Änderungen in einer Liste zu sammeln... mit verschiedenen Personen, die an verschiedenen Modulen arbeiten...

Übrigens, Sie haben einen Fehler. Der new-Operator gibt nicht wie in C++ einen Zeiger auf den zugewiesenen Speicher zurück. Machen Sie es so:

Nein, da liegt kein Fehler vor, der Zeiger ist oberhalb des Codes deklariert (ich habe nur ein Fragment gesendet). Danke für den Versuch zu helfen.
 
MetaDriver:
Das macht Sinn, wenn die Kartenordnung radikal reformiert wird. Und wahrscheinlich ist das auch der Fall (da eine Menge neuer Funktionen eingeführt werden sollen).

Das ist es. Idealerweise. Realistisch betrachtet ist das ziemlich ressourcenintensiv. Alle Änderungen in einer Liste zusammenfassen... mit verschiedenen Personen, die an verschiedenen Modulen arbeiten...

Nein, da liegt kein Fehler vor, der Zeiger ist oberhalb des Codes deklariert (ich habe nur ein Fragment gesendet). Danke für den Versuch zu helfen.

Dass der Zeiger oberhalb des Codes deklariert wird, ist klar, wenn auch nicht ganz :) jedenfalls habe ich deinen Code mit meinen Korrekturen ausgeführt, beide meine Varianten funktionieren. Übrigens verstehe ich immer noch nicht, was die Entwickler dazu bewogen hat, die Funktionsweise des neuen Operators im Gegensatz zu C++ zu ändern. Ich verstehe nicht, warum ein Zeiger auf ein Handle besser ist als ein Zeiger auf eine Adresse im Speicher.
Grund der Beschwerde: