Discussão do artigo "Controles gráficos personalizados. Parte 1: Criando um controle simples" - página 2

 
Urain:

Já existem exemplos suficientes de criação de códigos simples, mas não há exemplos suficientes de criação de uma hierarquia de classes bem-sucedida ou, pelo menos, de um esquema fácil de implementar de um produto universal e facilmente transformável. Até mesmo as classes padrão da MQ muitas vezes complicam a criação de programas, pois estabelecem possibilidades antecipadamente.

É isso que quero dizer.

Primeiro, você precisa de uma demonstração do sistema como um todo. Primeiro a ARQUITETURA. E mostrar qual é o lugar que cada tijolo - um controlador específico - ocupa nele.

Depois, passe para a demonstração do funcionamento desses controles (desculpe pelo MFC, mas é apenas uma boa imagem).



 
sergeev:

Muito bem. Isso é muito bom.

Se você falar sobre funções de alto nível na segunda parte, as pessoas começarão a usar os componentes do artigo mais rapidamente.
Eu ainda começaria com formulários + botões (+ caixa de entrada) e, somente na terceira parte, falaria sobre componentes de controle específicos: listas, menus etc.

Afinal de contas, a tarefa é ensinar como escrever esses controles. Mas, enquanto não houver um formulário onde inseri-los, o artigo não terá um efeito tão espetacular e necessário.
Além disso, assim que você fornecer Form+Button (quero dizer 3 tipos - rádio, push, check) + EditBox já no segundo artigo, o usuário verá as classes como um todo e poderá criar seus próprios controles independentemente.


Para interagir com o formulário, o controle deve ter quatro métodos Init(...), Show(X,Y), Hide(), Event(), e tudo será exatamente igual ao que acontece agora, quando se cria um controle no gráfico. Portanto, você já pode escrever seus próprios controladores.

Ainda assim, manterei meu plano: na terceira parte, haverá um formulário com todos os controles nele - será mais conveniente usá-lo como exemplo ou modelo pronto - será necessário remover algo, duplicar algo e tudo mais, será mais um produto semiacabado pronto.

 
Integer:

Afinal, manterei meu plano: na terceira parte, haverá um formulário com todos os controles.

Ok. Vamos esperar por isso :)
 

O tópico é relevante... obrigado por abordá-lo....

Entretanto, depois de ler o artigo e os comentários, achei que a essência do algoritmo é um pouco difícil de implementar.

Pensei: o algoritmo a seguir não seria mais simples e mais universal?

Um painel com botões de controle pode ser implementado em qualquer linguagem com um editor poderoso (por exemplo, Visual Studio ).

E ele (o programa para implementar o painel de controle com botões e outros recursos) funciona de forma autônoma e independente do MT5.

Esses resultados são inseridos em um arquivo do qual o MT5 lê periodicamente (também é bom configurar uma interrupção).

Assim, o processo de programação será simplificado e haverá universalidade (a capacidade de trabalhar com qualquer programa e também com o MT4).

Portanto, a questão principal será o acoplamento do arquivo de parâmetros resultante com o corpo do programa.

Nessa direção, eu gostaria de ver a evolução do MT5 e não a expansão banal das funções....

E a troca via RAM também não faria mal - provavelmente, ela ainda é 1000 vezes mais rápida.

Também podemos considerar a conexão via Web... Seria bastante interessante.

O que você acha?

 
Não entendi o quarto princípio. Você poderia me dar algum exemplo?
 

Não entendi o quarto princípio. Vocês poderiam citar algum exemplo? 

 
LeoAndriolo:

Não entendi o quarto princípio. Vocês poderiam citar algum exemplo? 

Olá Leo, quando você se refere ao quarto princípio, você está se referindo exatamente ao quê? Aqui me consta que o tópico 4 desse artigo diz respeito a "Peças de trabalho para controles". Você poderia especificar um pouco mais sua dúvida?
 
Malacarne:
Olá Leo, quando você se refere ao quarto princípio, você está se referindo exatamente ao quê? Aqui me consta que o tópico 4 desse artigo diz respeito a "Peças de trabalho para controles". Você poderia especificar um pouco mais sua dúvida?
1.1.4
 

Gostaria de criar um objeto gráfico personalizado que seja uma combinação de retângulos e caixas e algumas informações. Usarei esse objeto com frequência, portanto, o ideal é que ele seja facilmente acessível. É possível adicionar objetos gráficos personalizados à barra de ferramentas do MT5? Se não for, você poderia dar outras sugestões?

 

Estranho...

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   ObjectCreate(m_id,m_name,OBJ_VLINE,aSubWindow,0,0);
   Attach(aName,aChartID);
  }

Não é assim que deve ser?

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   Attach(aName,aChartID);
   ObjectCreate(m_id,m_name,OBJ_VLINE,aSubWindow,0,0);
  }

Ou assim.

Для примера, один метод создания графического объекта вертикальная линия (OBJ_VLINE):

void CreateVLine(string aName,int aSubWindow=0,long aChartID=0)
  {
   ObjectCreate(aChartID,aName,OBJ_VLINE,aSubWindow,0,0);
   Attach(aName,aChartID);
  }