Galeria de UIs escritas em MQL - página 60

 

Como se viu, a parte prática da demonstração é bastante extensa e sua cobertura levará algum tempo. Contarei e mostrarei os novos recursos em detalhes e de forma acessível, com comentários, imagens e gifs. Talvez eu tenha que dividir a apresentação em dois dias - hoje e amanhã. Não tem problema, sua compreensão melhorará. Você também deve descansar.


O plano de análise da funcionalidade da nova versão do mecanismo:

1. Lembro que novas pastas e arquivos devem ser instalados no ME após a exclusão completa dos anteriores. Não há necessidade de fazer substituições.

2. Para trabalhar, precisamos abrir os arquivos (1) EA Shell v1.mq5 e API.mqh . Não há necessidade de abrir outros arquivos. Usaremos a mesma interface e janelas familiares do projeto Demo 1.mqh. O primeiro arquivo deve estar na pasta Experts (acho que já está lá), e o segundo pode ser encontrado aqui:



Os arquivos UIDATA.mqh e API.mqh nessa pasta já contêm tudo o que você precisa. Não há necessidade de gerar novos arquivos no construtor.


3) O trabalho principal ocorrerá no arquivo (1) EA Shell v1.mq5, nas funções _OnInit() e _OnTimer, mas, às vezes, daremos uma olhada no arquivo API.mqh. Se estiver curioso, você pode abrir o arquivo UIDATA.mqh e ver como são as funções de janela e de elemento. Elas são impressas na parte inferior. Caso contrário, esse arquivo não é necessário para o trabalho e pode ser fechado.


Os tópicos que abordaremos são:

1. Navegar pela lista do intellisense e selecionar a função de janela correta.

2. Abrir e fechar janelas de forma programática.

3. orientação na lista do intellisense e seleção do recurso certo na janela certa.

4. Navegar pelas listas de propriedades de elementos individuais.

5. Analisar o nome do elemento e a função de proteção da janela.

6. Retornar o valor do parâmetro de um elemento selecionado para uma variável de seu tipo. Considerar três tipos de vários elementos diferentes.

7. Definição de valores para parâmetros de diferentes tipos de elementos. Vamos ver como os valores aparecerão nas janelas de interface desses elementos.

8. Retornar os valores dos parâmetros de um elemento, modificar e encaminhar esse valor para outro elemento. Considere diferentes tipos de elementos e valores e teste o encaminhamento entre diferentes tipos de elementos em diferentes janelas.

9. Retornar o valor anterior (_V_LAST). Quando e para quais casos o último valor é necessário (não confundir com o valor atual).

10. Testar a configuração dos estados ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK para diferentes tipos de elementos.

11. Vamos tentar vincular e sincronizar as alterações de valores de elementos de diferentes tipos: por exemplo, campo de entrada com botões e controle deslizante. Vamos supor que, quando o valor de um elemento (manual ou de software) for alterado, o valor do segundo elemento será alterado de forma correspondente.

12. Vamos tentar redefinir programaticamente os limites do intervalo do controle deslizante e do campo de entrada com botões por meio de funções de wrapper. Não tive tempo de testar isso, mas algo sugere que funcionará. No entanto, vamos ver.

13. Vamos tentar retornar os estados dos elementos por meio de funções de wrapper. Isso está incluído na funcionalidade, mas não tive tempo de testá-la. Então, vamos ver... O resultado é desconhecido.

14. Vamos obter e definir cores para texto e bases de elementos. Podemos tentar associar essas cores a alguns eventos simples ou limites de valores.

15. Falarei mais sobre como navegar e ler a impressão do novo arquivo de API.


Isso é tudo por enquanto, mas é possível fazer acréscimos à medida que avançarmos.

 

Vamos começar a considerar os tópicos mencionados acima.

1. orientar-se na lista do intellisense e selecionar a função da janela necessária:

Digite w_ e será exibidauma lista de funções das janelas da interface do usuário deste projeto.


2. Orientar-se na lista do intellisense e selecionar o recurso desejado da janela selecionada:

Depois de selecionar uma janela, observamos seu número.

Apagamos o traço após w e imprimimos seu número.

Esse é o prefixo da lista de todas as interações dentro dessa janela:


//-------------------------------------------------------------------------------------------------------------------------------------------

O gif mostra a facilidade e o dinamismo desse processo:



A seguir, vamos dar uma olhada na abertura e no fechamento de janelas da GUI.

 

3. Abrir e fechar janelas:

  • Para abrir uma janela, você precisa selecionar seu nome na lista dointellisense e adicionar colchetes com ponto e vírgula.Não coloque nada dentro da chamada.

  • Para fechar uma janela, você precisa fazer a mesma coisa, mas coloque 0 entre os colchetes.



Esta é a aparência do processo:





Continuaremos os tópicos amanhã, com energia renovada.

 
sem emendas
 

选择窗口后,我们查看其编号。

Apagamos o traço após o w e imprimimos seu número.

Esse é o prefixo de todas as listas de interação dentro dessa janela:

O que são p1~p7? Entendi. É o atributo

 
A GUI ainda não funciona no testador
 
hini #:

O que é p1~p7? Estou vendo. É um atributo

É um prefixo para abrir uma lista de propriedades de elementos individuais disponíveis para retornar e definir os valores de sua função de wrapper.


 
hini #:
A GUI ainda não funciona no testador.
Ainda não investiguei esse problema, pois não tive tempo. Depois que eu terminar de escrever a funcionalidade básica, verei se é possível fazer algo.
 
Реter Konow #:
Ainda não dei uma olhada nisso porque não tive tempo. Quando eu terminar de escrever a funcionalidade básica, verei se é possível fazer algo a respeito.
Porque no testador, ele não chama OnChartEvent
 
Vamos passar para o próximo tópico e examinar as listas de propriedades de elementos individuais.