Galeria de UIs escritas em MQL - página 10

 

...E, por fim, hoje, mais uma coisa atrevida: uma cópia da janela de configurações do ME.


Aqui é mais fácil entender qual janela é "não real")).

 
Реter Konow #:

Sim, claro. Não foi um problema.

Não me pergunte como, não consigo me lembrar de nada. ))))))

Nikolai responderá melhor.

É surpreendente, pois até mesmo o painel embutido do MQ Fast Trading tem esse bug!

 
Aleksey Vyazmikin #:

É incrível, porque até mesmo o painel embutido do MQ Fast Trading tem esse tipo de erro!

Você só precisa controlar as propriedades dos objetos. O algoritmo deve saber qual objeto o cursor está acima e qual objeto está em "foco". Altere a propriedade do objeto na parte inferior para que ele não reaja ao cursor e ao clique. Acho que sim, mas posso estar errado porque não me lembro. Já se passaram anos.

 
Lembro-me de que meu algoritmo desativou a rolagem do gráfico enquanto o cursor estava acima da minha janela e eu estava rolando algo nela. Então, quando o cursor retornava ao espaço livre do gráfico, o algoritmo ativava a rolagem novamente.
 
Реter Konow #:
Eu me lembro

Não podemos assisti-lo agora?

 
Aleksey Vyazmikin #:

Não podemos assisti-lo agora?

Tenho dezenas de milhares de linhas de código espalhadas por dezenas de arquivos em meu arquivo e não me lembro de nada.)))) Tentarei dar uma olhada quando quiser.

 
Реter Konow #:

Tenho dezenas de milhares de linhas de código espalhadas por dezenas de arquivos em meu arquivo e não me lembro de nada. )))))) Tentarei dar uma olhada no lazer.

Ah, como eu entendo, também o tenho em computadores diferentes... Ao tentar juntar tudo, você percebe que não entende o significado do código :) Agora comecei a escrever muitos comentários no código - é conveniente, embora pareça ser uma perda de tempo desnecessária quando você escreve o código, mas quando você volta a ele um ano depois, ajuda muito.

 
Aleksey Vyazmikin #:

Ah, como eu entendo, também tenho isso em computadores diferentes..... ao tentar juntar tudo, você percebe que não entende o significado do código :) Agora comecei a escrever muitos comentários no código - é útil, embora pareça uma perda de tempo desnecessária ao escrever código, mas quando você volta a ele um ano depois, ajuda muito.

Tenho medo de que, se eu entrar no arquivo, a galeria nunca termine, rs.)))))) Há um construtor lá, e é muito fácil criar novas janelas nele. E se eu quiser terminar o editor visual...? Então ficarei preso por meses, e para quê? ))))))

 
Aleksey Vyazmikin #:

... Agora comecei a escrever muitos comentários no código - é útil, embora pareça uma perda de tempo desnecessária ao escrever o código, mas quando você volta a ele um ano depois, ajuda muito.

Concordo plenamente com relação aos comentários. Definitivamente, você deve escrever explicações para o código.

 
Aleksey Vyazmikin #:
Não tenho experiência no desenvolvimento dessas interfaces, mas o que usei de diferentes fontes tinha uma desvantagem significativa, ou seja, às vezes(!) outros objetos no gráfico eram clicados por meio delas. Você conseguiu resolver esse problema?

Minhas interfaces eram, obviamente, muito mais simples. Não usei o Canvas, mas simplesmente construí um painel com controles padrão. Para evitar que outros objetos no gráfico aparecessem, redesenhei todos os componentes da janela uma vez por minuto:

if (iTime(_Symbol,PERIOD_M1,0) > LastMinute && !IsTesting()) { 
   LastMinute = iTime(_Symbol,PERIOD_M1,0);
   for (int i = 0; i < 45 ; i++) {
      long tf = ObjectGetInteger(0, Controls[i], OBJPROP_TIMEFRAMES);
      if (ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, -1)) 
         ObjectSetInteger(0, Controls[i], OBJPROP_TIMEFRAMES, tf);
   }
}

Aqui, Controls é uma matriz que contém os nomes dos componentes.