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

 

Nos últimos dois anos tive a sensação de não viver, mas não sei onde estou para ser honesto.

Eu corto minhas veias (no sentido longitudinal, posso enviar fotos), agora não sei se estou vivo ou não - mas o tópico de Peter diz que não estou. :(

Eu estou na matriz :(
 
Vladimir Gribachev:

Nos últimos dois anos tive a sensação de não viver, mas não sei onde estou para ser honesto.

Eu corto minhas veias (no sentido longitudinal, posso enviar fotos), agora não sei se estou vivo ou não - mas o tópico de Peter diz que não estou. :(

Deve ser ruim - Eu estou na matriz :(

Vladimir Gribachev:

Eu não sei como é.

mas eu tenho sonhado com isso - o motor principal

Oh, merda!

Tenho que voltar para o manicômio para descansar.

Camarada, não brinque dessa maneira).

Eu não me importaria de acalmar também, mas tenho medo da raiva justa. Acho que não está. Estou surpreso com sua autocontenção, com tal classificação e número de produtos no mercado =))
 
Ilya Malev:
Não me importaria um pouco de flubbing, mas tenho medo da ira dos justos. Acho que não está. Estou surpreso com sua restrição, com tal classificação e com o número de produtos no mercado =))

A raiva dos administradores - é justificada.

Já vi muitas proibições, mas quando você lê toda a porcaria que eles escrevem, você percebe que, sim, não é suficiente matar.

O que eu disse? Se eu estiver errado sobre algo, você é bem-vindo a isso.

 
Ilya Malev:

Camarada, não brinque dessa maneira.

Obrigado por manter viva a história. felicidade, saúde, amor, prosperidade, muito dinheiro, dois alpendres vermelhos e uma casa na polônia.

 
Vladimir Gribachev:

obrigado por preservar a história. felicidade, saúde, amor, prosperidade, muito dinheiro, dois alpendres vermelhos e uma casa na polônia.

Desculpe, hábito profissional.

P.S. E obrigado por apagar as mensagens a que respondi sem citá-las

 

Como prometido, aqui está a segunda demonstração do motor. Este motor se conecta a um Expert Advisor de teste (arquivo anexado abaixo) e passa as ações do usuário para ele.

  1. A janela do motor tem duas abas. Na aba "Pastas de grupo", há um item para minimizar o grupo "G_FOLDER". Clicando sobre ela, a tabela aparecerá/desaparecerá.
  2. Na aba "Controlador de aparência", há dois botões. Cada um controla a aparência de um texto diferente. Ao clicar sobre eles, um texto aparecerá e o outro desaparecerá.
Instalação:
  1. Em anexo estão dois arquivos de conexão (Conexão Externa e Propriedades de Conexão). Eles precisam ser instalados na pasta inlud. (ao invés dos primeiros, se eles estiverem lá).
  2. Instale o motor na pasta de indicadores (ao invés do antigo, se estiver lá), e coloque-o na tabela.
  3. Instale o Expert Advisor de teste na tabela. (O arquivo está anexado abaixo, se não estiver lá). Instalá-lo na pasta Experts, abri-lo, salvá-lo, compilá-lo e colocá-lo no gráfico).

Após estes procedimentos, você pode testar a conexão do teste EA.

Quando você clicar nos elementos da tabela, digitar texto ou selecionar uma opção, o Expert Advisor de teste exibirá uma mensagem de alerta com comentários sobre o evento.

Você pode examinar a estrutura do arquivo de Conexão Externa. É muito simples.

O arquivo de propriedades de conexão NÃO deve ser aberto ou alterado.



SZY. Há também um arquivo de código de janela na parte inferior, para aqueles que estão interessados em aprendê-lo.

Arquivos anexados:
 
Dmitry Fedoseev:

Tente fazer aparecer um conjunto de controles quando clicar em um botão, e outro conjunto de controles quando clicar em outro botão. Ao mesmo tempo, a janela pode ser minimizada e maximizada. Também se supõe que poderia haver muitas variantes.

Seria interessante perguntar a Peter, como ele seria capaz de resolver esta tarefa.

Aqui, Dimitri, no exemplo acima, três princípios de controle de fenômenos de elementos funcionam ao mesmo tempo:

  1. Troca de abas.
  2. Mostrar/ocultar grupos de elementos com um elemento G_FOLDER.
  3. Mostrar/ocultar grupos ou elementos individuais usando um controle de fenômenos.

Abiblioteca padrão (tanto quanto eu entendo) não tem tais características.

Abas, botões, botões de rádio, itens e outros elementos podem ser trocados usando o SWITCH.

SWITCH, "Элемент 1","Элемент 2","Элемент 3","Элемент 4",..., END,

O bloqueio de grupos de elementos ou elementos individuais é feito com BLOQUES.

"Элемент 1",BLOCKS,"Элемент 2","Элемент 3","Элемент 4",..., END,

O fenômeno de grupo é controlado pelo elemento G_FOLDER.

//Объявляем элемент G_FOLDER:
//----------------------------------------------------------------------------------
GROUP,A,

__,  G_FOLDER, "Group opener 1",  

END_GROUP,
//--------------------------------------------
i,IN,"V1",                       <------------- Устанавливаем канвас на котором рисуем группу элементов.
i, AT, LEFT_TOP, 1,20,           <------------- Устанавливаем позицию группы элементов.

//Устанавливаем свойства элементов типа G_FOLDERS внутри группы:
i,G_FOLDERS, N_COLOR, (int)C'245,245,245',   N_COLOR, (int)C'245,245,245',  AH_COLOR, (int)C'245,245,245',  NH_COLOR, (int)C'245,245,245', END,
//----------------------------------------------------------------------------------
//Делаем таблицу:
//----------------------------------------------------------------------------------
GROUP,A, IS_TABLE,  ROOT,"Group opener 1", <------------------- Устанавливаем привязку явления группы к элементу "Group opener 1", (который является G_FOLDER)


__,     T_HEADER, "The name of the table", H,30,   C_HEADER, "Text cells", C_HEADER, "Checkbox cells",  C_HEADER, "R button cells", C_HEADER, "C list cells",      C_HEADER, "Edit cells", 
__,     R_HEADER, "Row header 1",    T_CELL, "text 1", CHECKBOX, "Checkbox cell 1",    R_BUTTON, "R button cell 1", C_LIST, "C list cell 1",    EDIT, "Edit cell 1",     
__,     R_HEADER, "Row header 2",    T_CELL, "text 2", CHECKBOX, "Checkbox cell 2",    R_BUTTON, "R button cell 2", C_LIST, "C list cell 2",    EDIT, "Edit cell 2",  
__,     R_HEADER, "Row header 3",    T_CELL, "text 3", CHECKBOX, "Checkbox cell 3",    R_BUTTON, "R button cell 3", C_LIST, "C list cell 3",    EDIT, "Edit cell 3",       
__,     R_HEADER, "Row header 4",    T_CELL, "text 4", CHECKBOX, "Checkbox cell 4",    R_BUTTON, "R button cell 4", C_LIST, "C list cell 4",    EDIT, "Edit cell 4", 

END_GROUP,
//----------------------------------
i,  IN, "V1",
i, Y_GAP,-1,
i, X_GAP,-1,

//Устанавливаем свойства элементов типа CHECKBOXES, R_BUTTONS, EDITS внутри группы:
//---------------------------------------------------------------------------------
i, CHECKBOXES, POINTED,0, END, 
i, R_BUTTONS,  POINTED,0, END, 
i, EDITS, POINTED,0, END, 

//Устанавливаем переключение радио-кнопок внутри таблицы:
//---------------------------------------------------------------------------------
"Radio buttons option",SWITCH, "R button cell 1", "R button cell 2","R button cell 3","R button cell 4",  END,

i,IS_ZEBRA_STYLE, <-----------------------------------Устанавливаем стиль Зебра.
i, AT, _X2X, "V1", 4, _Y2H,"Group opener 1", 5,<-----------------------------------Устанавливаем позицию группы относительно сворачивателя.
//----------------------------------------------------------------------------------

Bem, quanto código você teria que escrever para fazer uma coisa dessas com a ajuda da biblioteca padrão?

Isto é o que distingue uma linguagem de marcação de uma biblioteca. Leveza e velocidade.

 
Реter Konow:

Aqui, Dimitri, no exemplo acima, três princípios de controle de fenômenos de elementos funcionam ao mesmo tempo:

  1. Troca de abas.
  2. Mostrar/ocultar grupos de elementos usando o elemento G_FOLDER.
  3. Mostrar/ocultar grupos ou elementos individuais usando um controle de fenômenos.

Abiblioteca padrão (tanto quanto eu entendo) não tem tais características.

Abas, botões, botões de rádio, itens e outros elementos podem ser trocados usando o SWITCH.

O bloqueio de grupos de elementos ou elementos individuais é feito com BLOQUES.

O fenômeno de grupo é controlado pelo elemento G_FOLDER.

Bem, quanto código você teria que escrever para fazer uma coisa dessas com a ajuda da biblioteca padrão?

Isto é o que distingue uma linguagem de marcação de uma biblioteca. Leveza e velocidade.

As abas não são um controle nada interessante - você pode viver sem elas simplesmente bem. O número de abas é muito limitado.

E 2 e 3 - quanto mais longe na floresta, mais lenha. Eu não tenho a menor idéia do que é e por que é necessário, e não vou descobrir. Porque um conjunto de controles realmente necessários e essenciais é definido há muito tempo e é mais do que suficiente para qualquer tarefa de criação de enganos. Mas isto parece um culto - inventando seus próprios nomes, metodologias, definições... etc.

Quero lembrar mais uma vez que uma implementação tão separada da astúcia em um indicador para controlar uma EA não requer a conexão de nada com a EA... mesmo que sejam usadas arrays em vez de OOP. Portanto, a abordagem é tortuosa. É torto onde deveria ser o mais perfeitamente pensado, porque esta é, pode-se dizer, a "cara do produto".

 
Dmitry Fedoseev:

As abas não são um controle interessante em absoluto; você pode viver bem sem elas. O número de abas é muito limitado.

E 2 e 3 são quanto mais longe na floresta, maior é a lenha. Não tenho idéia do que é e por que é necessário, e não vou descobrir. Porque um conjunto de controles realmente necessários e essenciais é definido há muito tempo e é mais do que suficiente para qualquer tarefa de criação de enganos. Mas isto parece um culto - inventando seus próprios nomes, metodologias, definições... etc.

Quero lembrar mais uma vez que uma implementação tão separada da astúcia em um indicador para controlar uma EA não requer a conexão de nada com a EA... mesmo que sejam usadas arrays em vez de OOP. Portanto, a abordagem é tortuosa. É torto onde deveria ser o mais perfeitamente pensado, porque é, pode-se dizer, a "cara do produto".

Telas comutadas por completo. E o segundo e o terceiro são projetados para gerenciar o fenômeno dos elementos sem trocar os Kanvases. Assim, o mesmo kanvas é redesenhado e cada vez com um conjunto diferente de elementos.

Sobre a conexão, eu não entendo sua idéia. Por que não deveria estar conectado à EA? Como você pode sincronizar parâmetros?

A GUI ou está completamente dentro do Expert Advisor ou está conectada de fora. No caso de conexão externa, é necessário definir as propriedades da conexão e sincronizar os valores dos parâmetros em ambos os lados.

 

A GUI retirada de um consultor especializado para um indicador é algo questionável (só por causa da arquitetura MT - os indicadores funcionam no fio da interface e podem retardar TUDO. Para que os indicadores não desacelerem, mesmo parte de suas funções é proibida na MT)

não sobre isso.

Se um usuário miserável pegou um par de indicadores (de terceiros) e um EA e todos eles são GUI com o kernel-engine fora do caminho. O que vai acontecer?

PS/ Peter, você já encontrou pelo menos hospedagem gratuita e colocou lá seu produto. Se a base de código não for boa. A publicação das versões alfa/beta/preview é um par de horas. Você não consegue encontrar tempo?