Discussão do artigo "Componentes View e Controller para tabelas no paradigma MVC em MQL5: Contêineres"

 

Novo artigo Componentes View e Controller para tabelas no paradigma MVC em MQL5: Contêineres foi publicado:

No artigo será analisada a criação do elemento de controle "Contêiner" com a possibilidade de rolar o seu conteúdo. Durante o processo, serão aperfeiçoadas classes já prontas de elementos de controle da biblioteca gráfica.

No contexto do desenvolvimento do elemento de controle TableView no paradigma MVC (Model-View-Controller), já criamos o componente Model, a modelo da tabela, e iniciamos a criação dos componentes View e Controller. No artigo anterior foram criados elementos de controle simples, porém suficientemente funcionais. A partir desses elementos serão montados elementos de controle mais complexos. Hoje escreveremos as classes dos elementos de controle Panel, GroupBox e Container, os três elementos são contêineres para posicionar diferentes elementos de controle sobre eles.

  • O elemento de controle Panel é um painel que permite posicionar sobre si outros elementos de controle em qualquer quantidade. Ao mover o painel para novas coordenadas, todos os elementos de controle posicionados sobre ele também são movidos juntamente com o painel. Dessa forma, o painel é um contêiner para os elementos de controle posicionados nele. No entanto, esse elemento não possui barras de rolagem que permitam rolar o conteúdo do contêiner caso ele ultrapasse os limites do painel. Esse conteúdo simplesmente é recortado pelos limites do contêiner.
  • O elemento de controle GroupBox é um conjunto de elementos organizado em um único grupo. Ele é herdado do painel e oferece a possibilidade de agrupar elementos de acordo com algum propósito comum, por exemplo, um grupo de elementos RadioButton, no qual apenas um elemento de todo o grupo pode ser selecionado, enquanto a seleção é removida dos demais elementos do grupo.
  • O elemento de controle Container é um contêiner. Ele permite anexar a si apenas um elemento de controle. Se o elemento anexado ultrapassar os limites do contêiner, surgem barras de rolagem que permitem rolar o conteúdo do contêiner. Para posicionar qualquer quantidade de elementos de controle dentro do contêiner, é necessário posicionar nele um painel, e então anexar ao painel a quantidade necessária de elementos de controle. Dessa forma, o contêiner rolará o painel, e o painel deslocará seu próprio conteúdo conforme a rolagem.

Assim, além dos três elementos principais de controle mencionados, será necessário criar classes para a criação das barras de rolagem, a classe do controle deslizante (Thumb) e a classe da barra de rolagem (ScrollBar). Haverá duas versões dessas classes, uma para a barra de rolagem vertical e outra para a horizontal.

Compilaremos o indicador e o executaremos no gráfico:


O deslocamento por uma página ao clicar no trilho funciona, o deslocamento ao clicar nos botões funciona, a repetição automática de eventos ao manter os botões pressionados funciona, a rolagem com a roda do mouse funciona.


Autor: Artyom Trishkin