Configuración de SlickEdit para trabajar y compilar documentos MQL4/5. - página 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;
  }

Aquí hay un ejemplo de la bibliotecade Artyom Trishkin, todo es bueno sólo un pero: El autor tiene un montón de envoltorios no utilizados, ya que afirma que se utilizarán más tarde, pero ahora es para notas, recordatorios.
Quiero utilizar su biblioteca, pero no es posible hacerlo sin orientar en el código sin editores adicionales que permitan colapsar el código. En el momento en que uno recorre todo el código en el MetaEditor de principio a fin, ya se olvida de lo que quería. Estoy cansado de usar todos los complementos posibles en el editor estándar, como Ctrl+g, además de lápiz y papel.

Pregunta:

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

Cuando pasamos un parámetro a un método por medio de un puntero o creamos un puntero a una clase de lo contrario no es posible MQL (o esto ). SlickEdit se niega a definir los métodos de las clases pasadas por puntero, que es una definición estricta de MQL.
Pero si cambiamos el operador de puntero (*) por el operador de referencia (&), todo se vuelve visible e incluso funciona la autodefinición de los miembros de la clase. ¡Pero esto no está permitido en MQL!

De ahí la pregunta de cómo y dónde establecer el puntero del operador (*) para que sea tratado en SlickEdit como operador (&).

 
BmC:

Aquí hay un ejemplo de la bibliotecade Artyom Trishkin, todo es bueno sólo un pero: El autor tiene un montón de envoltorios no utilizados, ya que afirma que se utilizarán más tarde, pero ahora es para notas, recordatorios.
Quiero utilizar su biblioteca, pero no es posible hacerlo sin orientar en el código sin editores adicionales que permitan colapsar el código. En el momento en que uno recorre todo el código en el MetaEditor de principio a fin, ya se olvida de lo que quería. Estoy cansado de usar todos los complementos posibles en el editor estándar, como Ctrl+g, además de lápiz y papel.

Pregunta:

Cuando pasamos un parámetro a un método por medio de un puntero o creamos un puntero a una clase de lo contrario no es posible MQL (o esto ). SlickEdit se niega a definir los métodos de las clases pasadas por puntero, que es una definición estricta de MQL.
Pero si cambiamos el operador de puntero (*) por el operador de referencia (&), todo se vuelve visible e incluso funciona la autodefinición de los miembros de la clase. ¡Pero esto no está permitido en MQL!

De ahí la pregunta de cómo y dónde establecer el puntero del operador (*) para que sea tratado en SlickEdit como operador (&).

Me temo que los operadores (&) y (*) no se pueden anular (no es culpa de SE).

debe estar trabajando con MQL5 como con C++ en SE? no sé qué aconsejar.... intentar trabajar como con C#.

 
Andrey Dik:

Me temo que los operadores (&) y (*) no se pueden anular (no es culpa de SE).

probablemente funcione con MQL5 como con C++ en SE? no sé qué aconsejar.... intentar trabajar como con C#.

Estoy trabajando como un lenguaje de usuario no C# y C++ ya que creo que las macros tratarán los operadores (* y &) de manera diferente en diferentes situaciones.

 
BmC:

Estoy trabajando como un lenguaje personalizado no C# y C++, ya que creo que las macros tratarán los operadores (* y &) de manera diferente en diferentes situaciones.

¿es posible crear y trabajar con un lenguaje personalizado en SE? no lo sabía.

Me refería a lo siguiente:


 

Es posible establecer, sólo en la versión pro, su propio idioma. Como se indica en la ayuda al crear tu propio lenguaje no especificado en la guía de SlickEdit, te enfrentas a una configuración de macros más avanzada, por lo que estoy buscando esta macro que está configurada para buscar métodos anidados en una clase pasada por puntero.
Me di cuenta de que C ++ pasó por puntero (*) objeto implica el uso de operador (->) en lugar de (.) en MQL. Por lo tanto, si sustituye o aplica comandos de compilación condicional en una macro al definir un lenguaje personalizado, estos operadores serán sustituidos. Esto significa que no puedo utilizar la configuración de los lenguajes C# o C++ sugeridos en este caso, ya que en realidad quiero cambiar la estructura de acceso a los operadores.

He descargado la versión 25 y ahora la estoy ajustando. He leído en los foros que tiene una configuración más flexible para conectar los idiomas personalizados. Intentaré crear tanto un lenguaje personalizado como en la plantilla de C# y C++ y veré cuál es mejor y quizás publique las instrucciones para configurar la versión 25.

 
BmC:

Es posible establecer, sólo en la versión pro, su propio idioma. Como se indica en la ayuda al crear tu propio lenguaje no especificado en la guía de SlickEdit, te enfrentas a una configuración de macros más avanzada, por lo que estoy buscando esta macro que está configurada para buscar métodos anidados en una clase pasada por puntero.
Me di cuenta de que C ++ pasó por puntero (*) objeto implica el uso de operador (->) en lugar de (.) en MQL. Por lo tanto, si sustituye o aplica comandos de compilación condicional en una macro al definir un lenguaje personalizado, estos operadores serán sustituidos. Esto significa que no puedo utilizar la configuración de los lenguajes C# o C++ sugeridos en este caso, ya que en realidad quiero cambiar la estructura de acceso a los operadores.

He descargado la versión 25 y ahora la estoy ajustando. He leído en los foros que tiene una configuración más flexible para conectar los idiomas personalizados. Intentaré crear tanto el lenguaje personalizado como la plantilla de C# y C++ y veré cuál es mejor y quizás publique las instrucciones para configurar la versión 25.

Sí, sólo quería decir que si es posible crear un lenguaje personalizado, puedes intentar hacer lo siguiente: crear un lenguaje personalizado, transferir la configuración de los lenguajes ya hechos desde el archivo de lenguaje CPP o C# correspondiente y luego intentar cambiar el comportamiento de los operadores correspondientes.

 
Andrey Dik:

Sí, sólo quería decir que si es posible crear un lenguaje personalizado, puedes intentar hacer esto: crear un lenguaje personalizado, transferir la configuración de los lenguajes ya hechos desde el archivo de lenguaje CPP o C# correspondiente y luego intentar cambiar el comportamiento de los operadores correspondientes.

así es como lo hice, la configuración debe ser transferida SOLO desde c# (CSharp) ya que es más adecuado para pasar objetos por referencia. En c++ (cpp) en lugar del operador (.) hay que insertar el operador (->) para referirse a los métodos del objeto.

Segundo problema cuando se crea un idioma personalizado, la coloración no se pasa a través de la configuración de la copia en la versión 25, o es sólo el tanque SlickEdit v25.0.2.0 de 64 bits. (Estoy seguro de que es culpa de los desarrolladores con la coloración, todo funcionaba en la versión anterior, se detuvo en esta).

Razón de la queja: