Bibliotecas: Easy Canvas - página 7

 
Oleksii Chepurnyi:
Talvez tenha sido diferente em situações diferentes.) Eu tinha uma tela recriada e ela parecia estar piscando. Eu queria prestar atenção a essa linha, mas não tive tempo.)

Se houver problemas, é melhor me informar. Todo mundo fica em silêncio por algum motivo. É mais fácil para mim lidar com minha própria criação.

 
Nikolai Semko:

Se houver algum problema, é melhor me avisar. Todos ficam calados por algum motivo. É mais fácil para mim lidar com minha própria criação.

Estou lhe dizendo, eu queria relatar o problema, mas não tive tempo - foi lançada uma nova versão, na qual ele já estava corrigido.
 
Oleksii Chepurnyi:
Estou lhe dizendo, eu queria informá-lo, mas não tive tempo - foi lançada uma nova versão, na qual isso já estava corrigido.

Ah, entendi :)))

 

versão 1.36
Agora ele funcionará mais corretamente no testador.
Mas você deve entender que, no testador, os eventos de redesenho da tela não funcionam corretamente.
É por isso que, no modo testador, é melhor redesenhar no OnCalculate, chamando forçosamente a função ChartChanged().

Por exemplo:

int OnCalculate(const int rates_total,const int prev_calculated,const int begin,const double &price[]) {
   if (rates_total!=prev_calculated && MQLInfoInteger(MQL_TESTER)) {
      ChartChanged();    //  функция находится внутри iCanvas.mqh
      ReDrawMyCanvas();  // sua tela
   }
   return(rates_total);
}
Experimente esse indicador no testador junto com a biblioteca atualizada.
Arquivos anexados:
3DMa.mq5  12 kb
 

Há um pedido enorme. Se você puder, é claro)

Essa matriz:

class iCanvas : public CCanvas
  {
private:
   datetime          T[1];

Renomeie-o, por exemplo, para Tm.

Em um dos projetos, da forma como está agora, ela produz milagres.

'[' - name expected     iCanvas.mqh     112     20
declaration of '_Period' hides predefined variable      iCanvas.mqh     112     38
'(' - name expected     iCanvas.mqh     112     46
variable '_Period' not used     iCanvas.mqh     112     38
'[' - name expected     iCanvas.mqh     113     22
'[' - name expected     iCanvas.mqh     114     47
declaration of '_Period' hides predefined variable      iCanvas.mqh     114     65
'(' - name expected     iCanvas.mqh     114     73
variable '_Period' not used     iCanvas.mqh     114     65
'[' - name expected     iCanvas.mqh     115     13

Não consegui encontrar o motivo, tentei renomeá-lo e tudo correu bem) Agora, eu o renomeio toda vez em uma nova versão.

 
Oleksii Chepurnyi:

Em um dos projetos, como está agora, ele produz maravilhas.

Não consegui encontrar o motivo, tentei renomeá-lo e tudo correu bem) Agora, eu o renomeio sempre em uma nova versão.

Você deveria procurar por #define T nesse projeto;)

 
Andrey Khatimlianskii:

Eu deveria procurar por #define T nesse projeto ;)

Bem, não há Ts exatamente, há Ts que começam com T. Está no scanner )

 
Oleksii Chepurnyi:

Bem, não há T's, há T's que começam com T. Está no scanner).

Bem, não há milagres!

Corte o projeto enquanto o erro estiver sendo reproduzido. Localize o local, entenda qual é o motivo.

É um membro privado daclasse, não pode afetar nada. É mais provável que seja afetado por outras definições.

 
Andrey Khatimlianskii:

Bem, não há milagres!

Corte o projeto enquanto o erro estiver sendo reproduzido. Localize o local, entenda qual é a causa.

É um membro privado de umaclasse, não pode afetar nada. Em vez disso, são outras definições que o afetam.

Encontrar a causa é interessante, mas é mais fácil renomear)

Se não me engano, esses truques apareceram em novas compilações com novas regras de compilação.

 
Oleksii Chepurnyi:

Encontrar a causa é interessante, mas é mais fácil renomear )

Se não me engano, esses truques apareceram em novas compilações com novas regras de compilação.

Renomear não é difícil. Há o Ctrl+H


Mas eu concordo com o Andrei. Procure por #define T ou #include <Canvas\iCanvas.mqh> e coloque-o em primeiro lugar no projeto.