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:
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.
Na imagem de obtenção de um valor de um elemento, esqueci de escrever a variável na qual ele é escrito. Desculpe-me, não estou programando há muito tempo. ))))))
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).
Indicador
Dentro do indicador há uma janela de usuário
Há um botão na janela
O botão chama sua função.
Todas as ações são escritas no corpo do indicador.
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)
Реter Konow controles 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.
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.
Para login e uso do site MQL5.com, você deve ativar o uso de cookies.
Ative esta opção no seu navegador, caso contrário você não poderá fazer login.
Você entrou na conta. A autenticação de dois fatores foi desativada. Configure-a novamente e escaneie um novo código QR ou continue com a autenticação de dois fatores desativada.
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.