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

 
Реter Konow:

Ao invés disso, sou crítico em relação ao meu trabalho. É por isso que eu estou melhorando o tempo todo.

O anatoly é bom. Sem dúvida. A biblioteca é boa.

Mas, mesmo a janela que eu mostrei hoje pode ser feita com grande dificuldade. Para não mencionar muito mais.

Só por interesse, você pode compor e mostrar aqui o código que precisa escrever para repetir minha janela e nós o compararemos com minha versão.

Pergunta a ser feita: Você pode descrever porque essa janela é necessária e como ela ajuda no comércio semi-automático?

 
Реter Konow:

Por que você escreveu a biblioteca gui?

Trabalhar com objetos gráficos no MT4 também é o mais demorado. Não só é preciso criar um objeto, mas também definir um conjunto de propriedades. Para simplificar o trabalho com objetos gráficos, eu tinha várias funções que permitiam criar rapidamente alguns objetos gráficos. Quando o MT5 apareceu, ele tinha ainda mais propriedades para todos os objetos gráficos e o número de parâmetros de funções aumentou tanto, que eles pareciam bobos. Portanto, surgiu uma questão - como simplificar o trabalho com objetos gráficos sob as novas condições. Conforme o OOP apareceu, suas aplicações foram consideradas. Como resultado, primeiro foi criada uma classe para trabalho rápido com um objeto gráfico. Em seguida, surgiu a idéia de criar vários elementos compostos. Eu gostei da idéia e escrevi o primeiro artigo - como criar meus próprios controles. Tudo correu tão bem e em 2-3 semanas, praticando por diversão, eu tinha criado vários controles similares aos padrões e criado uma biblioteca, sua descrição é fornecida no segundo artigo. O terceiro artigo era sobre formulários, mas era mais uma formalidade para completar a biblioteca e para isso os formulários eram desejáveis. Mas era muito ruim sobre as formas, eu não sabia como melhorá-las. Além disso, não havia eventos de movimento do mouse naquela época, então as barras de rolagem são estranhas e a forma é arrastada de uma maneira incomum. Quanto aos formulários - ao invés de serem solicitados, eles foram anatematizados. E não há muito trabalho para que a biblioteca seja muito útil. Tenho até ideias para melhorá-la, retrabalhar barras de rolagem, arrastar e soltar o formulário e fazer o formulário em si de uma maneira diferente, que não copiaria uma classe em branco, e criar um objeto e conectar controles a ele.

 
Vitaly Muzichenko:

Pergunta por pergunta: Você pode descrever por que essa janela é necessária e como ela ajuda no comércio semi-automático?

O comércio semi-automático, é a mesma "porcaria" incompreensível e financeiramente prejudicial que o comércio totalmente automático ou manual.

Apenas outro tipo de negociação que pode interessar aos comerciantes.

 
Artyom Trishkin:

Considere-o como você julgar adequado. Você pode reler as discussões dos artigos de Anatoly - aí estão suas tentativas de competir. Mas Anatoly fez tudo há muito tempo, modestamente, qualitativamente, profissionalmente, "sem barulho e sem poeira", e você ainda está se elogiando.

A questão é - como utilizá-lo? Você tem que ler 50 artigos? E ainda assim é chamado de "rápido e fácil", que paradoxal.

 
Dmitry Fedoseev:

A questão é - como utilizá-lo? Você tem que ler 50 artigos?

De alguma forma, eu descobri rapidamente - sem os artigos. Leia-os, é claro - saiu, leia-os do meu celular. Para entender o que é descrito ali. Mas criar e trabalhar com objetos lá é mais fácil do que no Peter's. Criar o número necessário de objetos com descrições de propriedades no OnInit() e usar suas mensagens no OnChartEvent(). O modelo de evento usual.

Mais tarde adaptei sua biblioteca para mim mesmo - fiz com que ela se cruzasse, acrescentei valores de economia de todos os objetos criados, para evitar o restabelecimento de seu estado original durante a reinicialização, acrescentei sons para muitas interações com objetos (definidos por padrão e individualmente, e desativados - para que não soasse e tilintasse constantemente), tentei e abandonei-a - tenho minhas próprias idéias. A biblioteca de Anatoly não permite criar objetos na mosca, por meio de novidades do programa, não permite fazer mais de uma janela ativa... Em geral - tem muito a desenvolver. Mas esta é uma questão para ele. Ou para você mesmo - para fazer o que você precisa para suas necessidades e com todos os objetos necessários e possibilidades de seu uso.

 
Artyom Trishkin:

De alguma forma, eu descobri rapidamente - sem os artigos. Leia-os, é claro - saiu, leia-os do meu celular. Para entender o que é descrito ali. Mas criar e trabalhar com objetos lá é mais simples do que no Peter's. Criar o número necessário de objetos com descrições de propriedades no OnInit() e usar suas mensagens no OnChartEvent(). É o modelo de evento usual.

Depois, digitalizei sua biblioteca para mim mesmo - fiz com que ela se cruzasse, adicionei valores de salvamento de todos os objetos criados, para que eles não fossem reinicializados em seu estado original, adicionei sons para muitas interações com objetos (definidos por padrão e individualmente, e desativados - para que ela não tocasse e desistisse constantemente), brinquei e desisti - tenho minhas próprias idéias. A biblioteca de Anatoly não permite criar objetos na mosca, por meio de novidades do programa, não permite fazer mais de uma janela ativa... Em geral - tem muito a desenvolver. Mas esta é uma questão para ele. Ou para você mesmo - para fazer o que você precisa para suas necessidades e com todos os objetos necessários e possibilidades de seu uso.

Acho que é possível criar objetos através de novos. E a criação de formulários é a mesma burrice que a minha, e na biblioteca padrão é a mesma - você tem que copiar o modelo do formulário. É interessante que eu fui tão criticado, quase anátematizado por meus formulários, mas eles não seguiram em frente a partir desse ponto.

 

esse é o ritmo... essa é a velocidade!

Enquanto eu me movia para 60 km, 15 páginas foram jogadas no tópico. Total de 1 página para 4(!) km ;-)

Peter não tem tempo para mover o núcleo e o motor do núcleo.

 
Dmitry Fedoseev:

Os objetos podem provavelmente ser criados com novos, não pode ser impossível, ou é realmente impossível? E a criação de formulários - tão burros quanto os meus, e na biblioteca padrão também é a mesma - você tem que copiar o formulário em branco. É interessante que fui tão criticado, que fiquei quase anátematizado por meus formulários, mas eles não seguiram em frente a partir desse ponto.

Sim, tenho que repetir o mesmo código cem vezes para cem janelas, mas com parâmetros diferentes. Para cada controle eu criei um método universal de sua criação - eu só precisava inserir os parâmetros necessários para cada elemento. Portanto, foi muito fácil para mim criar - eu precisava de uma janela - CreateWindow (inicial, individual, parâmetros), etc. E então, se o elemento for criado, é possível acrescentar-lhe bugigangas, ou deixá-lo como padrão por padrão.

Isto é, aproximadamente (estruturalmente) dessa forma:

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

Bem e já é suficiente ter uma janela com dois botões e uma bomba atômica :)

Mas eu reelaborei a biblioteca de Anatoly. É mais complicado, como me parece.

Quanto à criação em novo - se minha memória não mudar - há muito tempo que não olho para o código - ele tem um objeto em nível global, e ele já serve para criar e controlar todos os elementos.

É claro, você pode tentar fazer uma lista com várias bibliotecas, criadas por novas, e depois no cronômetro e eventos para ver essas listas e o que acontece nelas. Mas uma vez experimentado, cada um desses objetos reage a ações de objetos vizinhos - quando você move uma janela, o resto também se agita. Então desisti de tentar descobrir - não havia tempo.

 
Artyom Trishkin:

Sim, você tem que repetir o mesmo código cem vezes para cem janelas, mas com seus próprios parâmetros. Eu me livrei disso - para cada controle fiz um método universal de sua criação - apenas digitei os parâmetros certos para cada elemento. Portanto, foi muito fácil para mim criar - eu precisava de uma janela - CreateWindow (inicial, individual, parâmetros), etc. E então, se o elemento for criado, é possível acrescentar-lhe bugigangas, ou deixá-lo como padrão por padrão.

Isto é, aproximadamente (estruturalmente) dessa forma:

CreateWindow(0);

CreateButton(1,0,координаты);

CreateButton(2,0,координаты);

...

CreateNuclearBomb(1,0,координаты);

...

Bem e já é suficiente ter uma janela com dois botões e uma bomba atômica :)

Mas eu reelaborei a biblioteca de Anatoly. É mais complicado, como me parece.

Quanto à criação em novo - se minha memória não mudar - há muito tempo que não olho para o código - ele tem um objeto em nível global, e ele já serve para criar e controlar todos os elementos.

É claro, você pode tentar fazer uma lista com várias bibliotecas, criadas por novas, e depois no cronômetro e eventos para ver essas listas e o que acontece nelas. Mas uma vez experimentado, cada um desses objetos reage a ações de objetos vizinhos - quando você move uma janela, o resto também se agita. Eu não tenho tempo para descobrir.

Qual é o parâmetro 0 para CreateWindow(0) e CreateButton()? Com CreateWindow(0), é um identificador de janela, enquanto que com CreateButton(), significa que os botões estarão no formulário 0. Ou não estarão de forma alguma? Apenas um formulário é possível e todos os controles estarão nele?

 
Dmitry Fedoseev:

Qual é o parâmetro 0 de CreateWindow(0) e CreateButton()? Com CreateWindow(0) este é o identificador da janela e com CreateButton() significa que os botões estarão no formulário 0. Ou não estarão de forma alguma? Apenas um formulário é possível e todos os controles estarão nele?

Cada elemento pode ser anexado a outro. Você acertou, o "0" é o identificador do elemento. Era uma representação esquemática do princípio de projeto da GUI. Os botões têm-no, portanto, eles serão afixados a esta janela. Se eu não acrescentasse a encadernação de janela a um elemento, ele seria anexado à tabela. Acho que é assim que se faz lá - não consigo me lembrar exatamente.