Bibliotecas: Clase СBmpButtonTransparent

 

Clase СBmpButtonTransparent:

Clase de botón transparente.

Clase y ejemplos de su uso, desarrollados para el concurso, organizado por TheXpert.

Autor: Andrey Miguzov

[Eliminado]  
Miro el codigo de la clase CBmpButton de la libreria estandar MQL5 y veo la similitud. Es un accidente o una de estas clases sirvió como prototipo?
 
Konstantin Karpov:
Miro el codigo de la clase CBmpButton de la libreria estandar MQL5 y veo la similitud. ¿Es un accidente o una de estas clases sirvió como prototipo?
Sí, por supuesto - CBmpButton se tomó como base. Y 90 por ciento reelaborado :) La clase madre CWndObj tuvo que modificarse un poco con la ayuda de la herencia. Esto se hizo por compatibilidad con la biblioteca estándar.
[Eliminado]  
Andrey Miguzov:
Sí, por supuesto - CBmpButton se tomó como base. Y 90 por ciento reelaborado :) La clase padre CWndObj tuvo que ser ligeramente modificada usando herencia. Esto se hizo por compatibilidad con la librería estándar.
Así que por qué los desarrolladores no incluir esta clase en su biblioteca estándar, porque la clase es necesaria. Por cierto, sería bueno obtener una descripción completa de sus métodos, porque tienes que entrar en el código y leer los métodos, adivinando lo que se necesitan para....
 
Konstantin Karpov:
Por cierto, sería bueno obtener una descripción completa de sus métodos, porque hay que meterse en el código y leer los métodos, adivinando para qué se necesitan.....
Estoy de acuerdo. Lo añadiré en cuanto tenga tiempo.
[Eliminado]  

Antes de hacer una descripción, por favor, dime qué método cambia la posición de un objeto gráfico en el gráfico. El método Top(aLocation) de la clase CWnd no lo cambia. Pero cambia la ubicación del clic como debe ser, pero el objeto gráfico en sí permanece en su sitio. ¿Entiendo que no hay vinculación entre la etiqueta del objeto y el objeto en sí? O no entiendo algo...

En general, lo he solucionado, en la clase CBmpButtonTransparent, he abierto el objeto m_button y a través de su método Y_Distance, al igual que en Top, introduzco una nueva coordenada Y. Ahora todo funciona.

 
Konstantin Karpov:

Antes de hacer una descripción, por favor, dime qué método cambia la posición de un objeto gráfico en el gráfico. El método Top(aLocation) de la clase CWnd no lo cambia. Pero cambia la ubicación del clic como debe ser, pero el objeto gráfico en sí permanece en su sitio. ¿Entiendo que no hay vinculación entre la etiqueta del objeto y el objeto en sí? O no entiendo algo...

En general, lo he solucionado, en la clase CBmpButtonTransparent, he abierto el objeto m_button y a través de su método Y_Distance, igual que en Top, introduzco una nueva coordenada Y. Ahora todo funciona.

No - esa no es la forma de hacerlo. Buscaré un ejemplo y lo subiré. Yo mismo experimenté con ello durante el concurso :)

Es que el método move no pertenece a mi clase - está implementado en la librería estándar.

Pon la carpeta con todo su contenido en Expertos.

En el archivo Profit_button, mira las líneas 139-143 y 155-159.

//Money.Shift(0,-3);
//Button.Shift(x,0);

Money.Move(Money.Left(),Money.Top()-3);
Button.Move(Button.Left()+x,Button.Top());

Funciona de ambas maneras - dependiendo del propósito.

Antes de iniciar el Asesor Experto, expanda la ventana a la pantalla completa :)

Archivos adjuntos:
Profit.zip  408 kb
[Eliminado]  
Andrey Miguzov:

No, no hagas eso. Buscaré un ejemplo y lo subiré. Durante el concurso yo mismo experimenté con él :)

Es que el método move no pertenece a mi clase, está implementado en la librería estándar.

Pon la carpeta con todo su contenido en Expertos.

En el archivo Profit_button, vea las líneas 139-143 y 155-159.

Funciona de ambas maneras - dependiendo del propósito.

Antes de iniciar el Asesor Experto, expanda la ventana a la pantalla completa :)

oops... :) y este método lo había pasado por alto por alguna razón, busqué y busqué por toda la ayuda de la biblioteca estándar y como dicen vi una figura :) oops... gracias...
[Eliminado]  
Andrey Miguzov:

Expanda la ventana a pantalla completa antes de lanzar el Asesor Experto :)

¡Gran ejemplo!