¡Atención, concurso! - página 13

 

Oops )

Estoy de acuerdo con la opción de derebane y sería muy útil un debate público.

 
TheXpert:
Sí, eso es un problema. Este tema requiere komposter y tol64

Gracias. No me presenté al concurso porque actualmente estoy trabajando en un proyecto muy grande. Pronto estará disponible para todos. Habrá mucho que debatir y es posible que también se organicen varios concursos basados en ello. Todavía no puedo dar más detalles. )

 
Bueno, aquí vamos :)
Класс для работы с кнопками произвольной формы
Класс для работы с кнопками произвольной формы
  • 2015.03.18
  • Dmitriy Parfenovich
  • www.mql5.com
Класс предназначен для создания интерактивных кнопок на графике цены с различными состояниями.
 
fyords:
Aquí vamos :)

El mío todavía se está probando... Te lo haré saber cuando lo vea...

Añadido:

Aquí viene mi opción:)

 
fyords:

Lo he buscado - 5 puntos :) Si el usuario no necesita la biblioteca estándar, su versión es mejor.

En realidad me estoy molestando con esta biblioteca porque tengo un programa con el que estoy trabajando ahora, escrito sobre su base. El diseño es muy torpe, quería mejorarlo. Y aquí acabo de recibir un concurso, que es muy relevante para mí.

De las ventajas de su aplicación:

1)No hay muletas. Lo tengo y la herencia de las clases estándar y otros placeres para apoyar la compatibilidad con la biblioteca estándar.

2) Elestado del botón y el estado del objeto en el gráfico coinciden.

3)Las funciones tienen unacomprobación de los valores de entrada en busca de errores. Yo, en algunos lugares, pasé por alto esto...

4)Los botones se crean de forma más elegante en el Asesor Experto (a través del ciclo anidado). No he pensado en ello.

5)No sólo se puede ajustar el ángulo del gráfico, sino también el ángulo del botón. Honestamente - no sé donde puede ser útil :) pero tal vez...

6) Tengo6 fotos. Tengo cuatro.

7)CCanvas - puedes escribir algo en el botón, añadir un par de funciones y ya está.Es muy conveniente en caso de aplicaciones multilingües. Tendría que volver a hacer muletas.

8)Su código es mucho más rápido de entender.

He notado algunas mejoras:

1)Si se reduce el chat para que el botón quede parcialmente oculto (abajo o arriba) - la retroiluminación del botón no se restablece (ver imagen) .

2)No he visto una opción para crear un "botón antiadherente". Es decir, un botón que se ha hundido e inmediatamente se ha caído (similar a los botones estándar).

3)Tienes una forma mucho más complicada de definir la transparencia. Ni siquiera entiendo cómo funciona en todas partes. Si preparas las imágenes tú mismo, es más fácil hacer lo que yo he hecho. Es decir,sólo tomo la transparencia de la imagen con la función (gracias a Integer ):

double GetAlfa(uint  aColor)
  {
   return((aColor>>24)&0xff);
  }

Y luego lo compruebo con el nivel de umbral (he cogido 250, pero por supuesto necesito añadir la función, para poder ajustarlo):

 double alfa=GetAlfa(data[y*m_SizeX+x]);
 if(alfa>250)
   {
    m_T[y*m_SizeX+x]=true;
   }
 else
   {
   m_T[y*m_SizeX+x]=false;
   }

Aunque, si trabaja con imágenes ya hechas sin abrir el editor gráfico, es probable que su versión sea más conveniente.

ZS: Acabo de notar que la clase CCanvas también tiene la función de definición de transparencia:

#define  GETRGBA(clr)   uchar((clr)>>24)
 

Gracias. Le echaré un vistazo al tuyo.

MigVRN:

Lo que he notado que se podría mejorar: ...

  1. Si el puntero sale de la ventana, no se genera el evento "mover ratón", por lo que parece imposible solucionar este fallo.
  2. La tarea no los tenía, aunque no costará mucho esfuerzo arreglarlo.
  3. Con la transparencia me parece que todo es más sencillo: toma 2e puntos (el más oscuro y el más brillante), el valor medio será un umbral. Si hay zonas transparentes en la imagen, el color más oscuro se desplazará hacia 0. Por tanto, el valor del umbral también lo hará.
    Esta decisión se tomó debido a que la misma función funciona tanto con transparencia como con una máscara independiente.
    También me gustaría mencionar que este método (máscara separada) permite utilizar imágenes sin transparencia. Bueno, tal vez el desarrollador no es bueno con los editores de gráficos :)
    O bien, la variante con la especificación del color de la máscara - como variante para especificar el color blanco para el botón verde y "se convertirá en transparente", sin baile adicional en torno a la transparencia y las máscaras adicionales.
 
MigVRN:

Hice un trabajo para ti allí... Estoy esperando la respuesta.

Gracias a los participantes.