Discusión sobre el artículo "Mejore sus gráficos comerciales con una GUI interactiva basada en MQL5 (Parte II): Interfaz móvil (II)" - página 2

 

¡AYUDA!


Su vista previa me intrigó y me hizo pensar que no necesito hacer una clase Texto. En su lugar, planeo usar su GUI como una clase base que será heredada por la clase hija de cada uno de mis paneles únicos. La clase GUI debe contener la definición para una función Mover(....) pero no contiene ningún código de trabajo.Cada una de las clases hijas son esencialmente un shell que hereda de la clase base. Además la clase hija contendrá una función Move que tomará las coordenadas x&y de la función GUI onEvent y contendrá código para asignar estas coordenadas a las ordenadas x y de cada uno de los objetos específicos del panel.

Aunque soy un buen programador, no soy tan buen programador de objetos, de hecho soy un novato. Estoy obteniendo "clsGUI::CreatePanel - cannot access private member function" Asumo que esto significa que necesito algunos otros calificadores para permitir su uso directamente en la clase hija para resolver el error. Hasta ahora mis referencias no han identificado la solución.

El archivo include y el programa se adjuntan y se originó como su código, pero contienen muchos cambios que hice al tratar de resolver el problema.

ADVERTENCIA A CUALQUIER OTRO QUE UTILICE ESTE CÓDIGO, CONTIENE MUCHOS ERRORES Y NO ME HAGO RESPONSABLE.


Muchas gracias por su ayuda


CapeCoddah

Archivos adjuntos:
 
CapeCoddah #:

AYUDA


Su vista previa me intrigó y me hizo pensar que no necesito hacer una clase Texto. En su lugar, planeo usar su GUI como una clase base que será heredada por la clase hija de cada uno de mis paneles únicos. La clase GUI debe contener la definición para una función Mover(....) pero no contiene ningún código de trabajo.Cada una de las clases hijas son esencialmente un shell que hereda de la clase base. Además la clase hija contendrá una función Move que tomará las coordenadas x&y de la función GUI onEvent y contendrá código para asignar estas coordenadas a las ordenadas x y de cada uno de los objetos específicos del panel.

Aunque soy un buen programador, no soy tan buen programador de objetos, de hecho soy un novato. Estoy obteniendo "clsGUI::CreatePanel - cannot access private member function" Supongo que esto significa que necesito algunos otros calificadores para permitir su uso directamente en la clase hija para resolver el error. Hasta ahora mis referencias no han identificado la solución.

El archivo include y el programa se adjuntan y se originaron como su código, pero contienen muchos cambios que hice al tratar de resolver el problema.

ADVERTENCIA A CUALQUIER OTRO QUE UTILICE ESTE CÓDIGO, CONTIENE MUCHOS ERRORES Y NO ME HAGO RESPONSABLE.


Muchas gracias por su ayuda


CapeCoddah

En la línea número 103 del archivo .mqh:

class clsSample : clsGUI

a

class clsSample : public clsGUI

Problema resuelto.


Concepto: Herencia tipo ->

He aquí lo que significa cada tipo de herencia:

  • Herencia pública ( clase Hijo : pública Padre ): Los miembros públicos y protegidos de la clase Padre se convierten en miembros públicos y protegidos de la clase Hijo, respectivamente. En esencia, la herencia pública significa "es-un". Por ejemplo, un "Hijo" es un tipo de "Padre".

  • Herencia protegida ( clase Hijo : protegida Padre ): Los miembros públicos y protegidos de la clase Padre se convierten en miembros protegidos de la clase Hijo. Esto significa que se puede acceder a ellos desde la clase Hijo y sus subclases, pero no desde fuera de estas clases.

  • Herencia privada ( clase Hijo : privada Padre ): Los miembros públicos y protegidos de la clase Parent se convierten en miembros privados de la clase Child. Esto significa que sólo se puede acceder a ellos desde la propia clase Child, no desde sus subclases ni desde fuera de la clase.

Espero que te sirva de ayuda.

PD: use Chart Redraw de lo contrario espera un tick de precio.