![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Pyotr, não estou entendendo você.
Você não respondeu às perguntas. É importante que os programadores saibam como interagir com sua GUI durante o trabalho. Aqui está um exemplo da minha GUI. Cliquei no atalho do tema claro/escuro e esse evento acionou imediatamente a função para alterar as cores e as linhas do plano de fundo. Como você faz essa interação?
O que significa "O usuário NÃO interagirá (de forma alguma) com meu código "? O programador precisa interagir não com o código, mas com os eventos que o código deve gerar.
Bom. Tentarei usar apenas imagens para maior clareza.
1.
2.
3.
4.
Nossa planilha de opções e a caixa de seleção na janela e o arquivo Internal_API:
5. Realização de ações na janela e itens no código do usuário:
6.
OINTELLISENSE NOS DIZ TUDO!!!
Vou tentar fazer uma pergunta diferente, usando o desenvolvimento da Web como exemplo, pois a GUI é escrita usando a linguagem de marcação que você criou.
O desenvolvimento da Web também tem sua própria linguagem de marcação (HTML) e linguagem de estilo (CSS). Se você tiver criado um site somente em HTML, poderá criar controles em html puro.
Aqui está um exemplo com caixa de seleção. Mas, nesse caso, o site estará morto, porque nada acontecerá quando os controles estiverem funcionando. Para que algo aconteça, você precisa colocar um manipulador para cada evento usando JavaScript e a função addEventListener. Aqui está um exemplo desse manipulador:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Minha pergunta principal pode ser reformulada: Como você implementapara o programador o manipulador de eventos gerado pela GUI quando o usuário trabalha.
Como eu disse, eu o implementei pelo fato de que, quando a GUI é gerada programaticamente, cada controle recebe sua própria função de manipulador de eventos usando um ponteiro para uma função.
OK.
Vou tentar fazer uma pergunta diferente, usando o desenvolvimento da Web como exemplo, pois a GUI é escrita usando a linguagem de marcação que você criou.
O desenvolvimento da Web também tem sua própria linguagem de marcação (HTML) e linguagem de estilo (CSS). Se você tiver criado um site somente em HTML, poderá criar controles em html puro.
Aqui está um exemplo com caixa de seleção. Mas, nesse caso, o site estará morto, porque nada acontecerá quando os controles estiverem funcionando. Para que algo aconteça, você precisa colocar um manipulador para cada evento usando JavaScript e a função addEventListener. Aqui está um exemplo desse manipulador:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Minha pergunta principal pode ser reformulada: Como você implementapara o programador o manipulador de eventos gerado pela GUI quando o usuário trabalha.
Como eu disse, eu o implementei pelo fato de que, quando a GUI é gerada programaticamente, cada controle recebe sua própria função de manipulador de eventos usando um ponteiro para a função.
Nicholas, tudo funciona. Você mesmo tentará fazer isso mais tarde. Tudo é muito mais simples do que você pensa. Criei muitas interfaces funcionais usando essa tecnologia. Então... Você verá em breve.
Nikolai, está funcionando. Você mesmo tentará mais tarde. É muito mais simples do que você pensa. Eu criei muitas interfaces funcionais usando essa tecnologia. Então... Você verá em breve.
Está bem. Estarei esperando.
No entanto, para facilitar a compreensão por meio de um exemplo, crie um indicador simples e vazio (ou Consultor Especialista), no qual a GUI esteja conectada na forma de um botão separado; ao pressioná-lo, a cor de fundo da janela muda de preto para branco e de branco para preto. É desejável apenas que a mudança de cor ocorra no corpo do indicador, e não em um dos arquivos conectados.
Para simplificar a escrita, aqui está o código da função que deve ser executada no corpo do programa quando o botão for pressionado:
Está bem. Vou esperar.
No entanto, para facilitar a compreensão por meio de um exemplo, crie um indicador simples e vazio (ou Consultor Especialista), no qual a GUI esteja conectada na forma de um botão separado e, ao pressioná-lo, a cor de fundo da janela mude de preto para branco e de branco para preto. É desejável apenas que a mudança de cor ocorra no corpo do indicador, e não em um dos arquivos conectados.
Para simplificar a escrita, aqui está o código da função que deve ser executada no corpo do programa quando o botão for pressionado:
Ok. Farei a implementação mais simples possível para facilitar a compreensão. Sem frescuras).
Está bem. Farei a implementação mais simples possível para facilitar a compreensão. Sem frescuras).
Ótimo! Muito obrigado.
Nikolay, não posso escrever uma chamada de função dentro do corpo do indicador, porque seu manipulador está dentro do arquivo Internal_API.mqh.
Ou seja, posso chamar sua função no evento de pressionar o botão a partir de seu manipulador nesse arquivo. No entanto, posso definir os estados do botão de forma programática a partir do corpo do indicador no evento do cronômetro, por exemplo. Mas, nesse caso, não preciso pressionar o botão. Em suma, há diferentes elementos. Alguns deles podem ser manipulados dentro do corpo do indicador (principalmente elementos não interativos, como a barra de progresso, por exemplo) e há aqueles que têm um manipulador no arquivo Internal_API.mqh e funcionam a partir dele. Embora seus estados possam ser definidos programaticamente a partir do corpo do EA/indicador.
Sua tarefa está concluída. (se houver um quadrado branco - clique)
Código:
Comentei sua função porque o compilador estava xingando. Tornei-a mais simples.
Aqui está o código no arquivo Internal_API.mqh
A propósito, você deve acrescentar:
O arquivo Internal_API.mqh contém manipuladores de controle e foi projetado ESPECIFICAMENTE para conectá-los.
Esse arquivo é destinado ao usuário e não faz parte do mecanismo ou de qualquer outro código meu.
Esse arquivo é destinado ao usuário e não faz parte do mecanismo ou de qualquer outro código meu.
Estou entendendo, Peter.
Obrigado, mas não é conveniente, é claro, para um desenvolvedor.
Há muito código e movimentos desnecessários. Ainda assim, a variante com um ponteiro para uma função é muito melhor.