Fazendo um projeto de crowdsourced em Tela - página 35

 

A propósito, já que as pessoas estão lidando com um problema que já há muito se fazia esperar:

esta é uma captura de tela aleatória retirada do yandex, a interface cliente-servidor GUI, e através da rede. Não há necessidade de reinventar a roda...

(um segundo de publicidade) Pi é muito legal. O tungstênio honesto vive lá :-)

 
Алексей Барбашин:

Sim, esse é o problema principal! O mesmo mercado proíbe o uso de dlls, portanto, temos que reinventar a roda. Ok, se alguém pensa que a GUI não é necessária, mas qualquer cálculo longo e complexo em qualquer caso em um só fio não funcionará, tudo ficará pendurado! Portanto, tem que ser feito em uma dll... o que é proibido no mercado...

E assim por diante. Por esta razão, tenho que desenhar e resolver tudo com métodos mql.

Na verdade, a separação da GUI e da lógica em fios já é, naturalmente, possível. Aqui os caras já discutiram a questão do paralelismo https://www.mql5.com/ru/forum/288985/page5#comment_14722396.

Como resultado, a forma em si poderia ser deixada no fio principal, como é feito em winnda, enquanto quaisquer cálculos adicionais poderiam ser movidos para a execução "de fundo". É assim que funciona para Windows, Linux e Android.

Sim, já vi esse artigo, que é uma espécie de outra muleta com um monte de código que eu nem quero investigar.
Quando tudo é muito mais rápido e fácil de fazer em dll.
A propósito e mql Socket eWebRequest eu desisti, porque quando o servidor mql não está disponível, devido à quebra de conexão,
As funções de soquete ou webrequest são bloqueadas, portanto tenha em mente, se você decidir construir aplicações em soquetes mql e webrequests.

 
Maxim Kuznetsov:

A propósito, desde que as pessoas estejam fazendo coisas que já foram feitas antes:

Esta é uma captura de tela aleatória tirada de yandex, interface cliente-servidor GUI, e através da rede. Não há necessidade de reinventar a roda...

(um segundo de publicidade) Pi é muito legal. O tungstênio honesto vive lá :-)

a propósito, e Scratch na captura de tela é mais ou menos o que Konov quer fazer, montar um algoritmo a partir de dados.

 
Maxim Kuznetsov:

é porque a microsoft está no comando :-)

Por que você acha que as pessoas perdem seus dados de login quando atualizam e ativam produtos em um sistema pirata?

O que tem aMicrosoft a ver com chaves de assinatura dll? Isso só identifica o desenvolvedor.
As chaves para assinar a dll podem ser dadas pela MQ para aqueles que foram totalmente autenticados pelo mercado.
Com esta chave, o desenvolvedor assina sua dll para identificar quem escreveu a dll.
A chave de assinatura dll não afeta a ativação do produto.

 
Maxim Kuznetsov:

///

Você pode entender que não há uma GUI adequada na MKL? A que temos é de 1995. Que vergonha para você... E você, com as chamadas para uma GUI de terceiros, já pensou em como utilizá-la na MT? Como conectá-lo? Ou não dê um mel, deixe-me dizer-lhe uma platitude?))

 
Реter Konow:

Você pode entender que não há uma GUI adequada na MKL? A que você tem é de 1995. Que vergonha para você... E você, com as chamadas para uma GUI de terceiros, já pensou em como utilizá-la na MT? Como conectá-lo? Ou não lhe dê um mel, deixe-me dizer-lhe uma platitude?))

Peter, provavelmente vou abrir seus olhos e falar por Maxim: Maxim conhece o assunto melhor do que ninguém e há cerca de um ano e meio ele postou sua versão de GUI, uma espécie de formação de marca. Além disso, a GUI foi construída em um ambiente externo, mas teve uma interação total com o programa (indicador, Expert Advisor).

Maxim, desculpe por responder à sua pergunta.

Entretanto, eu gostaria de voltar ao assunto. Eu tirei uma foto de um artigo sobre o funcionamento da biblioteca padrão:


Esta captura de tela mostra a composição do diálogo de uma forma simplificada.

Nesta versão, a Borda é o elemento principal que cria o objeto de tela na carta e todos os objetos escravos são desenhados sobre ela. Ou melhor, ele é desenhado dependendo do objeto escravo.

O botão Fechar é desenhado na Legenda e a Legenda é desenhada na Borda, que depois é desenhada na tela com todos os elementos desenhados.

 
Алексей Барбашин:

Peter, eu provavelmente abrirei seus olhos e lhe direi para Maxim: Maxim está mais familiarizado com este tópico do que qualquer outra pessoa e há cerca de um ano e meio ele postou sua versão de GUI, formada como se estivesse baseada em uma marcação. Além disso, a GUI foi construída em um ambiente externo, mas teve uma interação total com o programa (indicador, Expert Advisor).

Maxim, desculpe por responder à sua pergunta.

Entretanto, eu gostaria de voltar ao assunto. Eu tirei uma foto de um artigo sobre o funcionamento da biblioteca padrão:


Esta captura de tela mostra a composição do diálogo de uma forma simplificada.

Nesta versão, a Borda é o elemento principal que cria o objeto de tela na carta e todos os objetos escravos são desenhados sobre ela. Ou melhor, ele é desenhado dependendo do objeto escravo.

Fechar botão é desenhado em Legenda e Legenda é desenhado em Borda e este botão com todos os elementos desenhados é desenhado em Tela.

Não sei o que ele postou e o que ele fez nos assuntos da GUI, mas nos meus tópicos ele não fez uma única sugestão técnica, solução ou discussão sobre o assunto. Somente trolling vazio, apontando soluções de terceiros e exortando a não reinventar a roda.

Voltar ao tema em questão.

Até onde eu estou familiarizado com a biblioteca padrão (muito pouco na verdade), há elementos e janelas compostas de objetos MT. Isto é, em nosso contexto - eles não são desenhados sobre a tela. Claro que eles são desenhados, mas não em nossa tela, o que nos impede de controlar as cores dos pixels, criando gradientes de superfície e muito mais.

Em teoria, poderíamos pegar a estrutura da biblioteca, copiar e fazer um análogo no kanvas. Em teoria...

O problema é que o próprio CCanvas não é adequado para fazer uma GUI sobre ele. Por quê? Porque o sistema kanvas é utilizado principalmente para primitivas gráficas. Portanto, em essência, esta classe não fornece nada além de primitivos. O arquétipo GUI tem que ser construído por você mesmo. E, neste caso, a classe não é necessária. É mais conveniente se contentar com suas próprias soluções. Afinal, você pode desenhar um marcador retangular sem a classe. Assim como você pode criar ou carregar uma lona. É muito simples. Portanto, eu preferia minha própria solução.

Mas alguém não pode passar sem o CCanvas. É por isso que eu não insisto nisso.

 
Реter Konow:

Não sei o que ele postou e o que fez nos assuntos da GUI, mas em meus tópicos ele não fez nenhuma sugestão técnica, nenhuma solução e nenhuma discussão sobre o assunto. Somente trolling vazio, apontando soluções de terceiros e exortando a não reinventar a roda.

Voltar ao tema em questão.

Até onde eu estou familiarizado com a biblioteca padrão (muito pouco na verdade), há elementos e janelas compostas de objetos MT. Isto é, em nosso contexto - eles não são desenhados sobre a tela. Claro que eles são desenhados, mas não em nossa tela, o que nos impede de controlar as cores dos pixels, criando gradientes de superfície e muito mais.

Em teoria, poderíamos pegar a estrutura da biblioteca, copiar e fazer um análogo no kanvas. Em teoria...

O problema é que o próprio CCanvas não é adequado para fazer uma GUI sobre ele. Por quê? Porque o sistema kanvas é utilizado principalmente para primitivas gráficas. Portanto, em essência, esta classe não fornece nada além de primitivos. O arquétipo GUI tem que ser construído por você mesmo. E, neste caso, a classe não é necessária. É mais conveniente se contentar com suas próprias soluções. Afinal, você pode desenhar um marcador retangular sem a classe. Assim como você pode criar ou carregar uma lona. É muito simples. Portanto, eu preferia minha própria solução.

Mas alguém não pode passar sem o CCanvas. Portanto, não insisto nisso.

Pare! Peter (certo?), vamos fazer algumas convenções para nos entendermos uns aos outros. Condição 1: Não chamaremos uma tela de classe CCanvas, mas apenas uma tela para desenhar uma parte da tela ou um recurso especificamente. A classe CCanvas não tem nada a ver com nada disso e não vamos nos deter de forma alguma sobre isso. Ele simplesmente fornece funções para se basear naquela tela e pronto! Na verdade, podemos desenhar usando muitos métodos diferentes.

Ao "desenhar" entenderemos a formação de um conjunto de pixels, com base no qual um recurso é criado, que é então colocado no gráfico.

 
Алексей Барбашин:

Pare! Peter (certo?), vamos aceitar algumas convenções para o entendimento de cada um. Condição 1: Não chamaremos o CCanvas de classe, mas apenas uma tela para desenhar parte da tela, ou especificamente um recurso. A classe CCanvas não tem nada a ver com nada disso e não vamos nos deter de forma alguma sobre isso. Ele simplesmente fornece funções para se basear naquela tela e pronto! Na verdade, podemos desenhar usando muitos métodos diferentes.

Ao "desenhar" entenderemos a formação de um conjunto de pixels com base no qual um recurso é criado e depois colocado no gráfico.

É isso mesmo.

 
Алексей Барбашин:

Peter, provavelmente abrirei seus olhos e lhe direi para Maxim: Maxim está mais familiarizado com este tópico do que qualquer outra pessoa e há cerca de um ano e meio ele postou sua versão de GUI, que foi formada com base no markup. Além disso, a GUI foi construída em um ambiente externo, mas teve uma interação total com o programa (indicador, Expert Advisor).

Maxim, desculpe por responder à sua pergunta.

Entretanto, eu gostaria de voltar ao assunto. Eu tirei uma foto de um artigo sobre o funcionamento da biblioteca padrão:


Esta captura de tela mostra a composição do diálogo de uma forma simplificada.

Nesta versão, a Borda é o elemento principal que cria o objeto de tela na carta e todos os objetos escravos são desenhados sobre ela. Ou melhor, ele é desenhado dependendo do objeto escravo.

O botão Fechar é desenhado em Legenda e Legenda é desenhado em Border e todos os elementos são desenhados na tela.

É claro que isto não é bem assim :-)

Eu coloquei uma interface para uma DLL Tcl (que é Tool Common Language), que tem um gráfico Tk que é compartilhado como uma GUI em Python/Ruby/etc

o objetivo não era obter uma GUI, mas um bom subproduto :-)

tcl.Eval("button .pressme -text {Hello Peter}; pack .pressme") ;

na minha opinião, conveniente e, mais importante, curto :-)

Eu não estou agitando ninguém - eu sei tcl/tk, eu o uso, eu compartilho minhas experiências (ver sourceforge atcl).

Razão: