Librerías: Easy Canvas - página 19

 

Después de usar su código me gustaría sugerir algunas mejoras. Las funciones matemáticas se solapan en nombre con las mías - quizás debería renombrarlas. Además, tus macros cancelan la definición al final, lo que podría causar problemas en mi código si utilizo las mismas definiciones. Una última cosa - sería bueno eliminar la definición antes de declarar OnChartEvent, esto eliminará la advertencia de redefinición (si la función ya estaba definida antes de adjuntar su archivo).

//+------------------------------------------------------------------+
int MyCeil (const double x) {
   return (x-(int)x>0)?(int)x+1:(int)x;
}
//+------------------------------------------------------------------+
int MyRound(const double x) {
   return (int)(x+((x>0)?0.5:-0.5));
}
//+------------------------------------------------------------------+
int MyFloor(const double x) {
   return (x>0)?(int)x:((int)x-x>0)?(int)x-1:(int)x;
}
#define  Ceil  MyCeil
#define  Round  MyRound
#define  Floor  MyFloor

...........

//+------------------------------------------------------------------+
#undef OnChartEvent
#define OnChartEvent SetOnChart(int x) {OnChart=true;  OnZ=false;}\
void MyChartEvent

#undef  Ceil
#undef  Round
#undef  Floor
#undef _Font
 
hini OnChartEvent, esto eliminará la advertencia de redefinición (si la función ya estaba definida antes de adjuntar su archivo).
Esta librería fue creada hace 7 años, antes de mis 5 años de educación como ingeniero de software. Yo escribiría esta librería muy diferente ahora. Como mínimo usaría el namespace.
Lo que me pides no puedo hacerlo, ya que rompería un montón de código mío y de otras personas que utilizan esta biblioteca.
Intenta empezar a usar namespace en tu lugar.

 
Nikolai Semko #:
Esta biblioteca fue creada hace 7 años, antes de mis 5 años de educación como ingeniero de software. Yo escribiría esta biblioteca de manera muy diferente ahora. Como mínimo utilizaría el espacio de nombres.
No puedo hacer lo que pides, ya que rompería un montón de código existente mío y de otras personas que utilizan esta biblioteca.
Trate de empezar a utilizar el espacio de nombres en su lugar.

100500 programadores te lo agradecerán sinceramente antes de irse a la cama si haces una librería Easy Canvas 2 de calidad.

La necesito mucho, pero no tengo suficientes conocimientos para hacerla yo mismo....
 
Vladimir Pastushak #:

100500 programadores te lo agradecerán sinceramente antes de acostarse si haces una librería Easy Canvas 2 de calidad.

Yo la necesito mucho, pero no tengo suficientes conocimientos para hacerla yo mismo....

Vladimir, Renat dijo hace poco que implementarán Blend2D en el terminal y en el editor.
Y eso significa que esta biblioteca ya se convertirá en un rudimento. Lo principal es no convertir su intención en una larga construcción.

Blend2D
Blend2D
  • blend2d.com
2D Vector Graphics Engine
 
Vladimir Pastushak #:

100500 programadores te lo agradecerán sinceramente antes de acostarse si haces una librería Easy Canvas 2 de calidad.

La necesito mucho, pero no tengo suficientes conocimientos para hacerla yo mismo....

Y recauda al menos 1$ de estos 100500 programadores , entonces Nikolay probablemente lo hará. Mientras tanto suena así: "¡Nikolay, trabaja en una nueva bibliografía, y entonces te lo agradeceremos!" ))

Una bibliografía de calidad para gráficos es cara. Por ejemplo, un autor escribió muchos artículos sobre el tema. ¿Y dónde está esa bibliografía? Está trabajando a través de un tocón, por eso no es popular....

 
Nikolai Semko #:

Esto se hace para controlar múltiples subventanas y múltiples instancias de iCanvas. Después de todo, las ventanas se pueden añadir y eliminar en el proceso de trabajo del indicador.
Por ejemplo, es necesario para este indicador:

https://www.mql5.com/es/code/25414

El objeto se crea prácticamente en primer lugar, lo que conduce al hecho de que si más objetos se crearon después, se superponen al objeto de la biblioteca.

 
Vladimir Pastushak #:

El objeto se crea casi en primer lugar, lo que significa que si después se crean más objetos, éstos se solapan con el objeto de la biblioteca.

Sí, así es como debería ser. ¿Cuál es el problema?
Si necesitas cambiar el índice Z, necesitas recrear los objetos en la secuencia correcta
 
Nikolai Semko #:
Sí. Así es como debería ser. ¿Cuál es el problema?
Si necesitas cambiar el Z-index, necesitas recrear los objetos en la secuencia correcta

Gracias, lo pensé después.....