MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 51

 
Barbarian:

Avez-vous essayé d'autres cours ? Ne fonctionnent-ils pas aussi bien ?

J'en ai regardé quelques-uns, mais pas tous. J'essaie au besoin (en écrivant un programme). Parfois, je mets des bouchons (là où ça ne marche pas), jusqu'à ce que le moment soit venu.

J'ai regardé la classe Canvas, et les méthodes de la classe utilisent les fonctions de MQL5. C'est très probablement la raison du problème. Par exemple, la méthode ?

utilise la méthode TextSetFont de MQL5, qui n'a probablement pas encore été implémentée dans MQL4. Cependant, elle est déjà présente dans les descriptions de l'aide. Peut-être ont-ils oublié de l'appliquer.

À propos, les développeurs ont fait un excellent travail avec la coloration syntaxique dans l'éditeur. Il est très utile de distinguer les méthodes de classe des fonctions de langage.

Je suis au courant. Tout fonctionnait déjà là il y a 5-6 builds, y compris TextSetFont() par exemple ce code fonctionnait bien :

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

juste plus tard désactivé // espérons-le temporairement :)

quand ça a marché, ça a marché comme prévu.

 
MetaDriver:
J'en ai regardé quelques-uns, mais pas tous. J'essaie selon les besoins (j'écris un programme). Parfois, je mets des bouchons (là où ça ne marche pas), jusqu'à de meilleurs moments.

Je suis conscient de cela. Tout fonctionnait déjà à cet endroit il y a 5-6 builds, y compris TextSetFont() par exemple, ce code fonctionnait bien :

il a juste été désactivé plus tard // espérons-le temporairement :)

quand ça a marché, ça a marché selon les spécifications.

C'est très étrange à ce moment-là. Il est inutile de le désactiver s'il a été activé dès le début pour étendre la fonctionnalité. En général, il serait agréable de recevoir une version mise à jour avec une liste des changements et des bogues corrigés. Nous aurons plus de problèmes avec l'analyse des nouveaux МТ4.

Au fait, il y a une erreur. L'opérateur new ne renvoie pas un pointeur vers la mémoire allouée comme en C++. Faites comme ça :

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

ou comme ça :

    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;

et ça marchera. Lire https://www.mql5.com/ru/docs/basis/types/object_pointers. Moi aussi, j'ai trébuché au début, ayant oublié le C++.

 
artmedia70:


Mon pseudo et mon mot de passe se trouvent dans l'onglet Communauté de mes paramètres. Je sélectionne le fichier nécessaire dans le navigateur de l'éditeur, puis je sélectionne MQL5 Storage --> Add, et le nom du fichier dans le navigateur est marqué d'un "+" bleu. Il semble être ajouté. Même les fichiers qui ont été ajoutés précédemment, mais qui ont été modifiés par la suite, sont marqués d'un " !" dans un cercle rouge. Il semble y avoir une différence. Mais je ne trouve aucun fichier ajouté dans le référentiel lui-même :

Qu'est-ce qu'il y a ?


Oui, il (le stockage) fonctionne, pas nécessairement à 100 % (il se peut qu'on n'ait pas encore compris comment sauvegarder les versions), mais il fonctionne.

Il suffit de cliquer sur les points de suspension... - J'ai ce dossier initial qui contient deux dossiers(projet et personnel).

 
ALXIMIKS:


Oui, cela fonctionne (le stockage), pas à 100 % (peut-être que je n'ai pas encore trouvé la solution pour la sauvegarde des versions), mais cela fonctionne.

Il suffit de cliquer sur les points de suspension... - J'ai un dossier initial contenant deux dossiers (projet et personnel).

Bien sûr que j'ai cliqué. Retourner au niveau précédent.
 
artmedia70:
Bien sûr que oui. Aller au niveau précédent.


Vos fichiers ajoutés ont-ils un cercle vert avec une coche ?

vous devez d'abord ajouter via MQL Storeg ==> ajouter, et ensuite cliquer sur le fichier ou le dossier à commettre via PCM ==> commettre.

 
ALXIMIKS:


voyez-vous un cercle vert avec une coche dans les fichiers ajoutés ?

vous devez d'abord ajouter via MQL Storeg ==> ajouter, et ensuite cliquer sur le fichier ou le dossier à commettre via PCM ==> commettre.

Merci, je vais essayer. Je ne l'ai pas fait de cette façon.
 
ALXIMIKS:


voyez-vous un cercle vert avec une coche dans les fichiers ajoutés ?

vous devez d'abord ajouter via MQL Storeg ==> ajouter, et ensuite cliquer sur le fichier ou le dossier à commettre via PCM ==> commettre.

Exactement, tu as raison. Cela a aidé ;)
 
Barbarian:

À propos, les développeurs ont fait un excellent travail en termes de coloration syntaxique dans l'éditeur.

Oui, j'aime beaucoup la palette de couleurs. Je veux la même chose dans le studio :-)
 
Barbarian:

C'est très étrange alors. Pourquoi la désactiver si elle a été activée dès le départ pour étendre la fonctionnalité.

C'est logique si le code des cartes est en train d'être radicalement réformé. Et c'est probablement le cas (puisqu'il y a beaucoup de nouvelles fonctionnalités à exécuter).


En général, il serait vraiment bon d'obtenir une version mise à jour avec une liste des changements et des bogues corrigés. Nous aurons moins à ramper pour étudier le nouveau МТ4.

Ça le serait. Ce serait dans une situation idéale. En réalité, cela demande beaucoup de ressources. Pour rassembler toutes les modifications en une seule liste... avec différentes personnes travaillant sur différents modules...

Au fait, vous avez une erreur. L'opérateur new ne renvoie pas un pointeur vers la mémoire allouée comme en C++. Faites comme ça :

Non, il n'y a pas d'erreur, le pointeur est déclaré au-dessus du code (je n'ai envoyé qu'un fragment). Merci d'avoir essayé d'aider.
 
MetaDriver:
C'est logique si le code des cartes est en train d'être radicalement réformé. Et c'est probablement le cas (puisqu'il y a beaucoup de nouvelles fonctionnalités à lancer).

Elle l'est. Idéalement. En réalité, cela demande beaucoup de ressources. Mettre tous les changements dans une seule liste... avec différentes personnes travaillant sur différents modules...

Non, il n'y a pas d'erreur, le pointeur est déclaré au-dessus du code (je n'ai envoyé qu'un fragment). Merci d'avoir essayé d'aider.

Le fait que le pointeur soit déclaré au-dessus du code est clair, mais pas tout à fait :) de toute façon, j'ai exécuté votre code avec mes corrections, mes deux variantes fonctionnent. À propos, je ne comprends toujours pas ce qui a guidé les développeurs lorsqu'ils ont modifié le mode de fonctionnement du nouvel opérateur, contrairement au C++. Je ne comprends pas pourquoi un pointeur vers un handle est meilleur qu'un pointeur vers une adresse en mémoire.
Raison: