Discusión sobre el artículo "DoEasy. Elementos de control (Parte 1): Primeros pasos"

 

Artículo publicado DoEasy. Elementos de control (Parte 1): Primeros pasos:

Con este artículo, iniciamos un extenso tutorial sobre la creación de controles al estilo de Windows Forms en MQL5. Vamos a empezar el tema creando una clase de panel. Ya se está haciendo difícil manejar las cosas sin controles. Por consiguiente, crearemos todos los controles posibles al estilo de Windows Forms.

Vamos a compilar el asesor y a ejecutarlo en el gráfico:


Las formularios responden al movimiento del ratón y siempre se encuentran por encima de los objetos gráficos añadidos al gráfico. El rellenado de gradiente de los objetos de elemento se dibuja correctamente, y el color del objeto de panel es único. Pero aquí, ni los elementos ni el panel responden al ratón y se encuentran en el fondo, por debajo de todos los objetos gráficos. Esto se debe a que solo hemos creado el procesamiento de los eventos del ratón para los objetos de formulario. E incluso el hecho de que un panel sea también en esencia un formulario resulta irrelevante, ya que en el manejador solo estamos procesando explícitamente la clase CForm. Todo esto se corregirá más adelante.

Autor: Artyom Trishkin

 

Le felicito por todo su trabajo duro ... este fue todo el proyecto.

Estoy empezando en esto y estoy tratando de compilar el TestDoEasyPart101.mq5 ... Estoy recibiendo los siguientes 4 errores:


1) CTrading::OpenPosition<...... (no se puede acceder a la función miembro privado)


todos los otros errores son básicamente los mismos, así que debo tener un problema de ruta, pero no puedo reducirlo.

He copiado los archivos DoEasy para incluir por lo que la jerarquía es la siguiente:

MQL5\Include\DoEasy\todos los archivos que estaban en su carpeta DoEasy bajo el include

Hice lo siguiente en la parte superior del archivo TradingControl.mqh: #include <DoEasy\trading.mqh>


cual puede ser mi problema...como he dicho parece que hiciste al menos 100 articulos para construir lo que tienes al principio de esto...alguna sugerencia de como consigo que esto compile?


Gracias

Dean Fredrickson

 
Dean Fredrickson proyecto.

Estoy empezando en esto y estoy tratando de compilar el TestDoEasyPart101.mq5 ... Estoy recibiendo los siguientes 4 errores:


1) CTrading::OpenPosition<...... (no se puede acceder a la función de miembro privado)


todos los otros errores son básicamente los mismos, así que debo tener un problema de ruta, pero no puedo reducirlo.

He copiado los archivos DoEasy para incluir por lo que la jerarquía es la siguiente:

MQL5\Include\DoEasy\todos los archivos que estaban en su carpeta DoEasy bajo el include

Hice lo siguiente en la parte superior del archivo TradingControl.mqh: #include <DoEasy\trading.mqh>


cual puede ser mi problema...como he dicho parece que hiciste al menos 100 articulos para construir lo que tienes al principio de esto...alguna sugerencia de como consigo que esto compile?


Gracias

Dean Fredrickson

En el archivo Trading.mqh, realice los siguientes cambios:

 //--- (1) Открывает позицию, (2) устанавливает отложенный ордер
 protected : 
   template < typename SL, typename TP> 
   bool                  OpenPosition( const ENUM_POSITION_TYPE type,
                                     const double volume,
                                     const string symbol,
                                     const ulong magic= ULONG_MAX ,
                                     const SL sl= 0 ,
                                     const TP tp= 0 ,
                                     const string comment= NULL ,
                                     const ulong deviation= ULONG_MAX ,
                                     const ENUM_ORDER_TYPE_FILLING type_filling= WRONG_VALUE );
   template < typename PR, typename PL, typename SL, typename TP>
   bool                  PlaceOrder( const ENUM_ORDER_TYPE order_type,
                                     const double volume,
                                     const string symbol,
                                     const PR price,
                                     const PL price_limit= 0 ,
                                     const SL sl= 0 ,
                                     const TP tp= 0 ,
                                     const ulong magic= ULONG_MAX ,
                                     const string comment= NULL ,
                                     const datetime expiration= 0 ,
                                     const ENUM_ORDER_TYPE_TIME type_time= WRONG_VALUE ,
                                     const ENUM_ORDER_TYPE_FILLING type_filling= WRONG_VALUE );
 private :                                     
 //--- Возвращает индекс объекта-запроса в списке по (1) идентификатору,
 //--- (2) тикету ордера, (3) тикету позиции в запросе 
   int                   GetIndexPendingRequestByID( const uchar id);
   int                   GetIndexPendingRequestByOrder( const ulong ticket);
   int                   GetIndexPendingRequestByPosition( const ulong ticket);

 public :
 //--- Возвращает себя 
   CTrading            *GetObject( void )    { return & this ;   }
 //--- Конструктор 
                        CTrading();

Esto permitirá que los métodos sean visibles desde las clases derivadas.

El error lo introduje yo por falta de atención, pero el antiguo compilador lo pasó por alto. Después de actualizar el terminal, el compilador vio este error.