Minha abordagem. O núcleo é o motor. - página 171

 
Vasiliy Sokolov:

...

3) Sim, endereçando pelo nome, você tem que especificar todos os parâmetros. Mas, o mais importante, não há um único modelo de evento monolítico. Se você quer seu próprio modelo, é bem-vindo. É elementar faze-lo. Mas não se pode passar sem temporizador.

A fila de eventos é um algoritmo generalizado para o manuseio confiável de eventos. O usuário não compõe nada; os eventos gerados por ele chegam sozinhos à fila. A fila em si consiste de apenas um evento 99,9% do tempo.

Bem, a implementação é semelhante à minha, mas a minha é muito mais simples para o usuário.


  • E_Window_Element(value); Passing value to element:
  • E_Window_Element(); Recuperar o valor do elemento:

  • E_Window_Element(M_COLOR, valor); Definir cor base.
  • E_Window_Element(T_COLOR, valor); Cor do texto definido.
  • E_Window_Element(F_COLOR, valor); Cor da moldura definida.


  • E_Window_Element(STATE, ON); Set clicked state.
  • E_Window_Element(STATE, OFF); Set Released state.
  • E_Window_Element(STATE, LOCKED_ON); Set locked state.
  • E_Window_Element(STATE, LOCKED_OFF); Set pushed state.
  • E_Window_Element(STATE, ON_H); Set state when clicked in focus.
  • E_Window_Element(STATE, OFF_H); Set state pushed to focus.


  • W_Window_name() Abrir janela.
  • W_Window_name(close) Fechar janela.


Os nomes dos invólucros dos elementos do formulário são impressos automaticamente no arquivo de conexão, e imediatamente entram no intellisense.

Vasily, você pode usar nomes intelectuais de elementos e janelas em seu programa MQL?


ZS Vasily, observe quantas ações um invólucro faz por elemento. E são necessários, no máximo, DOIS parâmetros. Ou nenhuma.

 
Igor Makanu:

... Tive um fiasco total com o dataGridView - não consigo escrever mais de 3-5 segundos) A tabela 10x11 já é crítica, embora o formulário com a tabela esteja rodando em uma linha separada

ZS: anexei um StringGrid ao MT4 5 anos atrás em Delphi. Não tive problemas com ele, mas tudo correu bem. No entanto tenho problemas com o dataGridView da Microsoft, hoje vou tentar experimentar com o SourceGrid, de acordo com os feedbacks ele é mais rápido que o dataGridView

Tente também aultra-rede infra-reguladora. É a coisa mais legal. Se existe um artifício que pode melhorar seu desempenho comercial, é esta tabela.

 
Dmitry Fedoseev:

...

Dmitry, existe um modelo arquitetônico chamado MVC. A abordagem que eu propus é exatamente sobre isso. Assim, quando você o critica, você critica MVC em primeiro lugar e soluções como Angular, ASP Net MVC, Ruby on Rails e outros produtos, não merecedores de sua atenção especializada, feitos através do "asno" em sua opinião. Portanto, acho que deve ficar claro para você por que não quero discutir com você e provar a validade da minha decisão - é simplesmente inútil.

 

No meu caso, o análogo de gravação

GuiController::SendEvent("AskLabel", TextChange, 0, 0.0, DoubleToString(ask, Digits()));

é a entrada

E_Trade_panel__AskLabel(DoubleToString(ask, Digits()));

Neste caso, não preciso lembrar o nome de um elemento em particular. Escrevo E_ e aparece uma lista de itens, digito as primeiras letras do nome da janela e isso me leva à lista de itens para uma determinada janela, depois seleciono o item desejado da lista.

 

Como você pode conectar uma tabela de pelo menos 100 células sem inteligências? Afinal de contas, é preciso lembrar os nomes de todas as células.

No meu caso, cada célula é automaticamente nomeada por nome de linha e coluna, e sua seleção é feita através de inteligências. Em sua versão, Vasiliy, você precisa saber exatamente como cada uma das 100 células é chamada.

E se eu tiver 10 janelas complexas com muitos elementos e mesas grandes, quanto tempo eu gastaria para nomear os elementos nas chamadas? Eu ficaria exausto).


E se os nomes forem os mesmos entre janelas diferentes?

 
Реter Konow:

Como você pode conectar uma tabela de pelo menos 100 células sem intellisense?

Eu não conheço Peter, porque o intellisense no MetaEditor funciona bem com todas as variáveis em C#, incluindo matrizes, estruturas, tipos básicos, métodos e até mesmo classes.

 
Vasiliy Sokolov:

Eu não conheço Peter, porque o intellisense no MetaEditor funciona bem com todas as variáveis em C#, incluindo matrizes, estruturas, tipos básicos, métodos e até mesmo classes.

Mostra nomes de elementos?

 
Реter Konow:

Mostra nomes de elementos?

Faz isso, com protótipos:

:))

 
Vasiliy Sokolov:

Pode apostar, com protótipos:

:))

Vasily, você não entende.

GuiController::SendEvent("AskLabel", TextChange, 0, 0.0, DoubleToString(ask, Digits()));

Para definir o valor de um elemento, você envia seu nome. O campo "Pergunte" tem o nome "AskLabel". Onde o intellisense mostra o nome do elemento?

 
Реter Konow:

Vasily, você não entende.

Para definir o valor de um elemento, você envia seu nome. O campo "Pergunte" tem o nome "AskLabel". Onde o intellisense mostra o nome do elemento?

Peter, parece que você está procurando algo para reclamar.

A resposta é não, o inteligenciador nunca trabalhou com um elemento de texto e nunca o fará. Mas se é apenas uma questão, não é um problema fazer interlesão sobre as mesmas definições.

s.s. A propósito, isso também não vai funcionar para você:

__, EDIT,"Set lot", W,150,_,H,60,_,V_CURRENT,"1.00", 
Razão: