Bibliotecas: Easy Canvas - página 19

 

Depois de usar seu código, gostaria de sugerir alguns aprimoramentos. O nome das funções matemáticas se sobrepõe ao meu - talvez eu deva renomeá-las. Além disso, suas macros estão cancelando a definição no final, o que pode causar problemas no meu código se eu usar as mesmas definições. Uma última coisa - seria bom remover a definição antes de declarar OnChartEvent, isso eliminará o aviso de redefinição (se a função já tiver sido definida antes de seu arquivo ser anexado).

//+------------------------------------------------------------------+
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, isso eliminará o aviso de redefinição (se a função já tiver sido definida antes de seu arquivo ser anexado).
Essa biblioteca foi criada há 7 anos, antes dos meus 5 anos de formação como engenheiro de software. Eu escreveria essa biblioteca de forma muito diferente agora. No mínimo, eu usaria o namespace.
O que você está pedindo eu não posso fazer, pois isso quebraria muitos códigos existentes meus e de outras pessoas que usam essa biblioteca.
Tente começar a usar o namespace em seu lugar.

 
Nikolai Semko #:
Essa biblioteca foi criada há 7 anos, antes dos meus 5 anos de formação como engenheiro de software. Eu escreveria essa biblioteca de forma muito diferente agora. No mínimo, eu usaria o namespace.
Não posso fazer o que você está pedindo, pois isso quebraria muitos códigos existentes meus e de outras pessoas que usam essa biblioteca.
Tente começar a usar o namespace em seu lugar.

100500 programadores lhe agradecerão sinceramente antes de dormir se você criar uma biblioteca Easy Canvas 2 de qualidade.

Eu preciso muito dela, mas não tenho conhecimento suficiente para criá-la eu mesmo....
 
Vladimir Pastushak #:

100500 programadores lhe agradecerão sinceramente antes de dormir se você criar uma biblioteca Easy Canvas 2 de qualidade.

Eu preciso muito dela, mas não tenho conhecimento suficiente para criá-la eu mesmo....

Vladimir, a Renat disse recentemente que implementará o Blend2D no terminal e no editor.
E isso significa que essa biblioteca já se tornará um rudimento. O principal é não transformar a intenção deles em uma longa construção.

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

100500 programadores lhe agradecerão sinceramente antes de dormir se você criar uma biblioteca Easy Canvas 2 de qualidade.

Eu preciso muito dela, mas não tenho conhecimento suficiente para criá-la eu mesmo....

E se você coletar pelo menos US$ 1 desses 100500 programadores, provavelmente Nikolay o fará. Enquanto isso, parece que é assim: "Nikolay, você trabalha em uma nova bibliografia e depois nós lhe agradeceremos!" ))

Uma bibliografia de qualidade para gráficos é cara. Por exemplo, um autor escreveu vários artigos sobre esse caso. E onde está essa bibliografia? Ela está sendo trabalhada em um toco, por isso não é popular....

 
Nikolai Semko #:

Isso é feito para controlar várias subjanelas e várias instâncias do iCanvas. Afinal de contas, as janelas podem ser adicionadas e removidas no processo de trabalho do indicador.
Por exemplo, isso é necessário para esse indicador:

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

O objeto é criado praticamente primeiro, o que leva ao fato de que, se mais objetos forem criados posteriormente, eles se sobreporão ao objeto da biblioteca.

 
Vladimir Pastushak #:

O objeto é criado quase primeiro, o que significa que, se mais objetos forem criados posteriormente, eles se sobreporão ao objeto da biblioteca.

Sim, é assim que deve ser. Qual é o problema?
Se você precisar alterar o índice Z, precisará recriar os objetos na sequência correta
 
Nikolai Semko #:
Sim, é assim que deve ser. Qual é o problema?
Se você precisar alterar o índice Z, precisará recriar os objetos na sequência correta

Obrigado, pensei nisso depois.....