![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
Mais:
Clicar com o botão direito do mouse nas áreas da janela, aparece um menu. Mude o mouse e clique com o botão esquerdo do mouse. Isto faz com que a janela se mova.
Isso é possível. Para sua informação, eu mesmo estou me desenvolvendo e testando, então simplesmente não sei de alguns bugs até encontrá-los acidentalmente no processo. Estou fazendo tudo sozinha...
Aqui está meu exemplo, no arquivo anexo, há três janelas que se sobrepõem uma à outra.
Criar uma janela com subjanelas é assim, apenas usando o motor sem código adicional. Exceto para lidar com o evento de clicar nos botões superiores.
Lidando com o evento de clicar nos botões superiores:
Há vários botões e apenas uma janela pai
Havia tal erro. Fixou-o. O evento em si é fixo, mas os bugs ocorrem com várias mudanças que não podem ser evitadas no desenvolvimento do código.
Sim, é complicado.
Uma foto da demonstração:
É que neste caso, antes de tudo, temos que elaborar os eventos e controles de janela, o resto é mais fácil, mas há muito mais trabalho a ser feito.
O trabalho de base já está pronto.
1: As janelas devem ter botões de fechamento e de colapso (pelo menos).
2: As janelas devem ser redesenhadas uma sobre a outra quando clicadas.
3: As janelas devem se mover com o mouse.
4: as janelas devem ser "detectadas" (focalizadas) no gráfico quando o cursor se move ( evento pontiagudo).
5. Todos os elementos das janelas devem estar em um "mapa" comum da janela e devem ser detectados quando o mouse estiver pairando (evento apontado).
Os elementos mais simples:
1. Uma Janela estática, dimensionalmente imutável e indelével.
2. Botão.
3. caixa de seleção.
4. Botão de rádio.
5. Tab.
6. Linha, moldura, divisor, retângulo.
Elementos de complexidade média:
1. Sliders.
2. Barras de progresso.
3. Campos de entrada.
4. Campos de rolagem.
5. Itens de lista simples.
Itens de alta complexidade.
1. Uma lista suspensa (um elemento muito complexo).
2. Uma janela dinâmica (extensível). Super-complexo.
Existem cerca de 50 tipos de controles. Cada um deve ter um conjunto comum e único de propriedades apoiado pela funcionalidade correspondente do motor. Propriedades pelo menos 100, caso contrário, o trabalho dos elementos será severamente limitado.
Formas e linhas simples não precisam de muitas propriedades, mas quanto mais complexo o elemento, mais existem.Merda! esqueci as mesas! É uma selva lá fora... ))))
E uma lista de árvores, e todo tipo de colapsos.
Merda! esqueci as mesas! É uma selva lá fora... ))))
E uma lista em forma de árvore, e todo tipo de colapsos.
No meu caso, a "selva" não é mais complicada do que a média: uma janela de exibição (a área visível da mesa), uma janela em tamanho real na qual todas as células devem caber, ela deslizará dentro da janela principal, janelas para filas e células nelas, mais rolagem (um deslizador delimitado por uma barra). As restrições de posicionamento relativo são determinadas pelas propriedades. Somente para o controle deslizante é necessário interceptar eventos de movimento de objetos e já corrigir a posição da"janela de tamanho completo".Tudo isso é feito por janelas virtuais, precisamos aparafusar parte visual a ela, sem parte visual haverá janelas para linhas e janelas em tamanho real. E para uma célula editável, faça um campo de entrada (este é personalizado), todas as outras coisas serão tratadas pelo motor - ele terá os eventos certos para cada célula (eventos do mouse, redesenho, movimentação)..... Estas são as possibilidades, mas há também algumas idéias para aumentar o desempenho caso haja muitas janelas (grandes listas, mesas, vários milhares de janelas).