Não podemos mais controlar a colocação de objetos no gráfico "verticalmente".

 

A última discussão, quase escandalosa, sobre o problema de formatação do código fonte terminou com os desenvolvedores reconhecendo o "direito" do programador de escrever programas da maneira que eles gostam (e não da maneira que eles pensam) e prometendo finalizar as configurações de formatação do código fonte.

Agora encontrei uma situação semelhante e novamente quero pedir a opinião daqueles para quem eles desenvolvem a MQL5.

Comece aqui. Em resumo, a história é a seguinte: os objetos na MQL5 são colocados em um gráfico na ordem de sua criação. O primeiro objeto criado é o mais baixo. Se você o apagar acidentalmente no código ou por um usuário, nenhuma outra forma de apagá-lo será possível (exceto apagar os objetos restantes e recriá-los na ordem correta). O exemplo mais óbvio: você fez um substrato para colocar textos, campos de entrada e botões em cima dele. Se você agora apagá-lo e criá-lo, ele cobrirá tudo o que você gostaria de ver em cima dele como o mais novo.

Perguntei ao Service Desk com uma sugestão.

необходимо предусмотреть механизмы произвольной сортировки объектов "по вертикали". Либо наличием свойства Zorder у каждого объекта, либо функциями BringToFront, SendToBack, InFrontOf, BehindOf. Ну или хотябы сделайте так же как было в 4-ке - по имени объекта, т.к. к такому поведению объектов все уже привыкли и ожидают что в 5-ке будет также.

Recebi imediatamente em....

Anton Timofeev 2010.05.27 12:27
A regra atual da seqüência de desenho é simples e suficiente para o controle do desenho. A ordenação pelo nome em alguns casos dá um controle mais flexível sobre a seqüência de renderização - uma solução simples para a tarefa específica descrita neste fórum (pequeno inconveniente), mas forçará todos os usuários a considerar cuidadosamente o nome ao adicionar qualquer objeto (incluindo os não-MQL) (grande inconveniente).
A seqüência de renderização na sobreposição de objetos no MT5 já é utilizada na prática (fundo, botões, etc.). Eu não reclamei dos problemas - tudo é resolvido de forma bastante simples e algorítmica.

quem teria duvidado que para eles é, por assim dizer, uma solução "simples e suficiente para controlar a renderização"?! :))))

ao meu comentário:

Ferramentas para Forex:

só porque outros não reclamaram não significa que não há problema, talvez porque ninguém se tenha incomodado com a interface ;)

respondeu


Andando por aí:

https://www.mql5.com/ru/articles/64

https://www.mql5.com/ru/articles/65

https://www.mql5.com/ru/code/68

Fizemos muitos testes internos, desenvolvemos interfaces e jogos. Não há problema como tal com a ordem de renderização, apenas mude sua abordagem com a ordem em mente.

Bom argumento: os jogos Ttris e Miner foram usados para depurar soluções para futuras interfaces comerciais :))))

E o ponto principal é o veredicto deles:

Acima descrevi a razão pela qual não faremos mudanças com algum detalhe. Vou repetir em poucas palavras: por uma questão de conveniência em um caso em particular, não se pode dificultar a vida para todos os outros em todos os outros casos.

Se em F4 havia pelo menos alguma ordem de localização dos objetos gráficos (por nomes de objetos), em 5 fizemos um pacote de cartões autodesenhados e sugerimos que "mudássemos nossa abordagem" para escrever programas MQL5.


TOTAL: o que pensam os colegas codificadores? Você precisa de um mecanismo para controlar a colocação de objetos na vertical? Eu sugeri três opções:

1) antigo - por nomes de objetos

2) normal - com adição de propriedade de ordem Z a cada objeto do gráfico

3) procedimento - usando as funções BringToFront, SendToBack, InFrontOf, BehindOf

ou aceitar a única opção dos desenvolvedores: em caso de exclusão, reelaboração completa de todos os objetos (!!!!) na ordem requerida.

Quem tem alguma idéia sobre isso?


 
2)
 
Eu não entendo bem. No MT5, os objetos gráficos não são dispostos em profundidade pelo nome do objeto, mas pela época da criação?
 
Integer >>:
Не совсем понял. В МТ5 графические объекты в глубину располагаются не по имени объекта а по времени создания?
Exatamente! Há aqui um roteiro simples para verificar
 

.

Eu sou para 2) ou pelo menos 1)

E o de procedimento, quem sabe?


também proponho minha própria variante

todos a favor das folhas de estilo em cascata!!!!!

Sim, seu em mkl5 muito "grande".

 

2)

se alguma coisa, que a ordem dos objetos é determinada pelo momento da criação é apenas uma desvantagem para o mapeamento.

sem ambigüidade - isto é uma omissão e ignorando o problema por parte das meta-cotações.

Afinal, no caso da ordenação pelo nome, o programador tem pelo menos alguma oportunidade de ordenar a seu critério,

enquanto que com a data de criação até mesmo esta possibilidade se foi.

Você deve retornar 1 ou melhor fazer 2. Ele apenas acrescenta outra propriedade conveniente ao objeto.

 

É claro que para o Z-coordenado, está no espírito do OOP.
Eu sou a favor de 2).

 
Sou a favor da ordem z/z-index
 

2) - Melhor escolha.

 

1. Pode-se, é claro, discutir características indocumentadas. E isto já foi feito muitas vezes. Mas a fim de encontrar soluções. Não mudar o comportamento indocumentado.

2. Tivemos muito mais pedidos (mais do que participantes nesta discussão) para mudar a maneira como os objetos são apresentados. Sim, em Cinco fizemos uma ordem simples e natural por tempo de criação do objeto (entretanto, isto também é indocumentado). O que fazemos agora?

3. nós não fazemos nada! Porque com a ordenação atual podemos simplesmente recriar um grupo de objetos, o que era impossível com a ordenação pelo nome.

 

stringo писал(а) >>

Como na classificação atual, você pode simplesmente recriar um grupo de objetos, o que não foi possível com a classificação pelo nome.

Segurar um objeto pelo usuário com o mouse quebra a coisa toda. Você leva isso em conta? Por que foi impossível?