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

 
Peter, eu entendo pelo dom da elipse que a forma é uma lona sólida? E como funcionam as listas suspensas? Estou interessado no caso em que a lista suspensa é maior do que o tamanho do formulário.
 
Vasiliy Sokolov:

Deixe-me colocar desta forma - eu mesmo não gosto de um pouco da desleixo da minha solução. Você tem que criar objetos MT. Mas, na realidade, é apenas um viés. Que diferença isso faz? Você não precisa mais de 20 -30 deles para uma transferência completa.

30*64 caracteres = 1920 caracteres. Isto é suficiente para transferir dados de tabelas grandes.

 
Dmitry Fedoseev:
Peter, vejo pelo dom da elipse que a forma é uma tela contínua? E como funcionam as listas suspensas? Estou interessado no caso em que a lista suspensa exceda o tamanho do formulário.

Sim, o formulário é um único kanvas. O próprio construtor escreve os nomes da tela e faz com que o invólucro funcione para trabalhar com ela.

As listas suspensa funcionam também na área fora da janela. Isto é implementado.

A lista suspensa é outro kanvas. Aparece e desaparece quando o botão é clicado.

 
Vasiliy Sokolov:

Mapeamento direto de estruturas através de matriz de bytes sindicalizados, compartilhados para acesso global. Não sei se isto é tecnicamente viável, mas se assim for, a velocidade seria cósmica, pois não seria preciso copiar nada.

Eu aceitaria de bom grado esta solução se você der um exemplo.

 

Tenha cuidado com o intercâmbio de dados através de objetos gráficos :-)

senão você pode facilmente fazer com que seu Expert Advisor pareça "não pode ser otimizado"...

 
Реter Konow:

Minha solução é a melhor opção sob as condições iniciais.

O que é um fio:

  1. Sem tamanho fixo. Como conseqüência, é impossível organizar um conjunto de cordas, e acessar uma cadeia arbitrária nesse conjunto;
  2. Ausência completa de digitação de dados em cordas. É preciso definir dinamicamente um subtipo dentro do analisador de cordas. Você perde tempo precioso na análise das fichas necessárias; e se os lexemes contêm erros, o fio não o controla de forma alguma. Você recebe um cordel e reza para que esteja correto;
  3. Baixa eficiência no armazenamento de informações por byte. Cadeia de serviço como "opt=1;cancel=3" na melhor das hipóteses, use 35-40 caracteres (bytes) de um total de 256 possíveis (17%). Para enviar 100 bytes de informação, você deve formar uma seqüência de 588 bytes, sobrecarregando o canal de comunicação. Se você comprimir os caracteres, isso torna o código muito complicado. Se você abreviar nomes de variáveis, isso ajuda apenas um pouco.

E apesar de todas essas coisas óbvias, você, como Robin Hood , continua proclamando quão rápido e preciso você é, e quão bem você adivinhou a corda. Não, eu não fiz, e tudo isso é muito insalubre.

Não tente montar seu estômago onde o conhecimento fundamental é necessário.

 
Vasiliy Sokolov:

O que é um fio:

  1. Não há um tamanho fixo. Como conseqüência, é impossível organizar um conjunto de cordas, e acessar uma cadeia arbitrária nesse conjunto;
  2. Completa falta de digitação de dados na cadeia. É preciso definir dinamicamente um subtipo dentro do analisador de cordas. Você perde tempo precioso na análise das fichas necessárias; e se os lexemes contêm erros, o fio não o controla de forma alguma. Você recebe um cordel e reza para que esteja correto;
  3. Baixa eficiência no armazenamento de informações por byte. Cadeia de serviço como "opt=1;cancel=3" na melhor das hipóteses, use 35-40 caracteres (bytes) de um total de 256 possíveis (17%). Para enviar 100 bytes de informação, você deve formar uma seqüência de 588 bytes, sobrecarregando o canal de comunicação. Se você comprimir os caracteres, isso torna o código muito complicado. Se você abreviar nomes de variáveis, isso ajuda apenas um pouco.

E apesar de todas essas coisas óbvias, você é como Robin Hood , ainda proclamando o quão rápido e preciso você é, e o quão bem você adivinhou a corda. Não, eu não fiz, e tudo isso é muito insalubre.

Não tente montar seu instinto onde você precisa conhecer os fundamentos.

Vasily, você não acha que os desenvolvedores de MT levaram em conta os problemas das cordas ao preservar a descrição dos objetos de MT?

É muito mais legal cavalgar no conhecimento fundamental de outra pessoa e usar sua intuição para alcançar ainda mais.

 
Реter Konow:

Vasiliy, você não acha que os desenvolvedores da MT levaram em conta problemas de cordas, ao armazenar a descrição do objeto MT?

Peter, todo algoritmo de armazenamento de dados tem seus pontos fracos e fortes. Os desenvolvedores certamente levaram muita coisa em conta, e certamente são bons, mas fundamentalmente as cordas sempre permanecerão como cordas.

 
Vasiliy Sokolov:

Peter, todo algoritmo de armazenamento de dados tem seus pontos fracos e fortes. Os desenvolvedores, é claro, levaram muitas coisas em conta, e certamente são boas, mas fundamentalmente, as cordas sempre permanecerão como cordas.

Vasily, se a prática mostrar que minha solução tem falhas, eu a abandonarei. E eu vou pegar a solução do Nikolai. Se também for ruim, voltarei à OnChartEvent() e direi que nada pode ser feito.

Entretanto, não há razão para acreditar que a implementação da minha solução será ainda coxa.

Logo saberemos.

 
z.s. Especificamente sobre a questão do armazenamento de cordas em objetos de MT, há uma falha estranha. Se você começar a comprimir dados e usar caracteres não imprimíveis no nome do objeto, em alguns casos você não poderá acessar este objeto. A falha provavelmente ainda está lá porque é muito específica e não há muita gente que saiba dela, mas mesmo assim você pode tropeçar nela.
Razão: