Configuration de SlickEdit pour travailler avec et compiler des documents MQL4/5. - page 10

 
CArrayObj *CSelect::ByOrderProperty(
CArrayObj *list_source,ENUM_ORDER_PROP_INTEGER property,long value,ENUM_COMPARER_TYPE mode)
  {
   if(list_source==NULL) return NULL;
   CArrayObj *list=new CArrayObj();
   if(list==NULL) return NULL;
   list.FreeMode(false);
   ListStorage.Add(list);
   int total=list_source.Total();
   for(int i=0; i<total; i++)
     {
      COrder *obj=list_source.At(i);
      if(!obj.SupportProperty(property)) continue;
      long obj_prop=obj.GetProperty(property);
      if(CompareValues(obj_prop,value,mode)) list.Add(obj);
     }
   return list;
  }

Voici un exemple de la bibliothèqued'Artyom Trishkin, tout est bon, sauf un : l'auteur a beaucoup d'emballages non utilisés, car il prétend qu'ils seront utilisés plus tard, mais maintenant c'est pour des notes, des rappels.
Je veux utiliser sa bibliothèque, mais il n'est pas possible de le faire sans orienter dans le code sans éditeurs supplémentaires qui permettent de réduire le code. Le temps de parcourir tout le code de MetaEditor du début à la fin, vous avez déjà oublié ce que vous vouliez. Je suis fatigué d'utiliser tous les compléments possibles dans l'éditeur standard tels que Ctrl+g, plus un stylo et du papier !

Question :

list.FreeMode(false);
list_source.At(i);

Lorsque nous passons un paramètre à une méthode par un pointeur ou que nous créons un pointeur vers une classe, il n'est pas possible d'utiliser MQL (ou ceci). SlickEdit refuse de définir les méthodes des classes passées par pointeur, ce qui est une définition stricte de MQL.
Mais si nous remplaçons l'opérateur de pointeur (*) par l'opérateur de référence (&), tout devient visible et la définition automatique des membres de la classe fonctionne même. Mais ceci n'est pas autorisé dans MQL !

D'où la question de savoir comment et où placer le pointeur de l'opérateur (*) pour qu'il soit traité dans SlickEdit comme l'opérateur (&).

 
BmC:

Voici un exemple de la bibliothèqued'Artyom Trishkin, tout est bon, sauf un : l'auteur a beaucoup d'emballages non utilisés, car il prétend qu'ils seront utilisés plus tard, mais maintenant c'est pour des notes, des rappels.
Je veux utiliser sa bibliothèque, mais il n'est pas possible de le faire sans orienter dans le code sans éditeurs supplémentaires qui permettent de réduire le code. Le temps de parcourir tout le code de MetaEditor du début à la fin, vous avez déjà oublié ce que vous vouliez. Je suis fatigué d'utiliser tous les compléments possibles dans l'éditeur standard tels que Ctrl+g, plus un stylo et du papier !

Question :

Lorsque nous passons un paramètre à une méthode par un pointeur ou que nous créons un pointeur vers une classe, il n'est pas possible d'utiliser MQL (ou ceci). SlickEdit refuse de définir les méthodes des classes passées par pointeur, ce qui est une définition stricte de MQL.
Mais si nous remplaçons l'opérateur de pointeur (*) par l'opérateur de référence (&), tout devient visible et la définition automatique des membres de la classe fonctionne même. Mais ceci n'est pas autorisé dans MQL !

D'où la question de savoir comment et où placer le pointeur de l'opérateur (*) pour qu'il soit traité dans SlickEdit comme l'opérateur (&).

Je crains que les opérateurs (&) et (*) ne puissent être remplacés (ce n'est pas la faute de SE).

vous devez travailler avec MQL5 comme avec C++ dans SE ? je ne sais pas quoi vous conseiller.... essayer de travailler comme avec C#.

 
Andrey Dik:

Je crains que les opérateurs (&) et (*) ne puissent être remplacés (ce n'est pas la faute de SE).

probablement fonctionner avec MQL5 comme avec C++ dans SE ? je ne sais pas quoi conseiller.... essayer de travailler comme avec C#.

Je travaille sur un langage utilisateur autre que C# et C++ car je pense que les macros traiteront les opérateurs (* et &) différemment dans différentes situations.

 
BmC:

Je travaille comme un langage personnalisé qui n'est ni C# ni C++, car je pense que les macros traiteront les opérateurs (* et &) différemment dans différentes situations.

est-il possible de créer et de travailler avec une langue personnalisée dans SE ? je ne le savais pas.

Je voulais dire ce qui suit :


 

Il est possible de définir, uniquement dans la version pro, votre propre langue. Comme indiqué dans l'aide, lorsque vous créez votre propre langage qui n'est pas spécifié dans le guide SlickEdit, vous êtes confronté à une configuration plus avancée de la macro. Je recherche donc cette macro qui est configurée pour rechercher des méthodes imbriquées dans une classe passée par pointeur.
J'ai compris que l'objet C++ passé par un pointeur (*) implique l'utilisation de l'opérateur (->) au lieu de (.) dans MQL. Par conséquent, si vous remplacez ou appliquez des commandes de compilation conditionnelle dans une macro lors de la définition d'un langage personnalisé, ces opérateurs seront substitués. Cela signifie que je ne peux pas utiliser les paramètres des langages C# ou C++ suggérés dans ce cas, puisque je veux en fait modifier la structure d'accès des opérateurs.

J'ai téléchargé la version 25 et je suis en train de l'ajuster. J'ai lu sur des forums qu'elle avait des paramètres plus flexibles pour connecter des langues personnalisées. Je vais essayer de créer à la fois un langage personnalisé et sur modèle C# et C++ et voir lequel est le meilleur et peut-être que je posterai les instructions sur la mise en place de la version 25.

 
BmC:

Il est possible de définir, uniquement dans la version pro, votre propre langue. Comme indiqué dans l'aide, lorsque vous créez votre propre langage qui n'est pas spécifié dans le guide SlickEdit, vous êtes confronté à une configuration plus avancée des macros. Je recherche donc cette macro qui est configurée pour rechercher des méthodes imbriquées dans une classe passée par pointeur.
J'ai compris que l'objet C++ passé par un pointeur (*) implique l'utilisation de l'opérateur (->) au lieu de (.) dans MQL. Par conséquent, si vous remplacez ou appliquez des commandes de compilation conditionnelle dans une macro lors de la définition d'un langage personnalisé, ces opérateurs seront substitués. Cela signifie que je ne peux pas utiliser les paramètres des langages C# ou C++ suggérés dans ce cas, puisque je veux en fait modifier la structure d'accès des opérateurs.

J'ai téléchargé la version 25 et je suis en train de l'ajuster. J'ai lu sur des forums qu'elle avait des paramètres plus flexibles pour connecter des langues personnalisées. Je vais essayer de créer à la fois un langage personnalisé et un modèle C# et C++ et voir lequel est le meilleur. Je posterai peut-être les instructions pour la mise en place de la version 25.

Oui, je voulais juste dire que s'il est possible de créer un langage personnalisé, vous pouvez essayer de le faire : créez un langage personnalisé, transférez les paramètres des langages prêts à l'emploi du fichier de langage CPP ou C# correspondant et essayez ensuite de modifier le comportement des opérateurs correspondants.

 
Andrey Dik:

Oui, je voulais juste dire que s'il est possible de créer un langage personnalisé, vous pouvez essayer de faire ce qui suit : créer un langage personnalisé, transférer les paramètres des langages prêts à l'emploi à partir du fichier de langage CPP ou C# correspondant, puis essayer de modifier le comportement des opérateurs correspondants.

c'est comme ça que je l'ai fait, les paramètres doivent être transférés UNIQUEMENT de c# (CSharp) car il est plus adapté pour passer des objets par référence. En c++ (cpp), au lieu de l'opérateur (.), vous devez insérer l'opérateur (->) pour faire référence aux méthodes des objets.

Deuxième problème lors de la création d'une langue personnalisée, la coloration n'est pas transmise via les paramètres de copie dans la version 25, ou c'est juste le réservoir de SlickEdit v25.0.2.0 64-bit (je suis sûr que c'est la faute des développeurs avec la coloration, tout fonctionnait dans la version précédente, mais plus dans celle-ci).