Anatoli Kazharski / Perfil
- Informações
|
14+ anos
experiência
|
2
produtos
|
2806
versão demo
|
|
28
trabalhos
|
0
sinais
|
0
assinantes
|
O artigo implementa um aplicativo MQL com uma interface gráfica para a visualização estendida do processo de otimização. A interface gráfica utiliza a última versão da biblioteca EasyAndFast. Muitos usuários podem questionar-se sobre a necessidade de utilizar interfaces gráficas em aplicativos MQL. Este artigo demonstra um dos vários casos em que eles podem ser úteis para os traders.
Uma nova versão da biblioteca gráfica para a criação de gráficos científicos (a classe CGraphic) foi apresentada recentemente. Esta atualização da biblioteca desenvolvida para criar interfaces gráficas irá introduzir uma versão com um novo controle para a criação de gráficos. Agora está ainda mais fácil de visualizar os dados de diferentes tipos.
Nesta atualização da biblioteca, o controle da tabela (a classe CTable) será complementado com novas opções. A gama de controles nas células da tabela foi expandida, desta vez adicionando as caixas de edição de texto e as caixas de combinação. Além disso, esta atualização também apresenta a capacidade de redimensionar a janela de uma aplicação MQL em tempo de execução.
Na nova versão da biblioteca, todos os controles serão desenhados em objetos gráficos separados do tipo OBJ_BITMAP_LABEL. Nós também vamos continuar a descrever a otimização do código: serão discutidas as mudanças nas principais classes da biblioteca.
À medida que a biblioteca cresce, seu código deve ser otimizado novamente para reduzir o seu tamanho. A versão da biblioteca descrita neste artigo tornou-se ainda mais orientada a objetos. Isso tornou o código mais amigável para o aprendizado. Uma descrição detalhada das últimas mudanças permitirá que os leitores desenvolvam a biblioteca de maneira independentemente de acordo com suas próprias necessidades.
Este artigo implementará a possibilidade de selecionar o texto usando várias combinações de teclas e excluir o texto selecionado, da mesma maneira que é feito em outros editores de texto. Além disso, vamos continuar com a otimização do código e prepararemos as classes para avançar para o processo final do segundo estágio da evolução da biblioteca, onde todos os controles serão renderizados como imagens separadas (telas).
Nós continuamos com o desenvolvimento do controle da caixa de texto Multilinha. Desta vez, nossa tarefa é implementar um quebra automático de linha no caso da largura da caixa de texto ser excedida ou uma quebra automática de linha inversa do texto para a linha anterior se a oportunidade surgir.
Nós continuamos a adicionar novos recursos para a tabela renderizada: ordenação dos dados, gerenciamento do número de colunas e linhas, definição dos tipos de células da tabela para colocar os controles dentro delas.
Nós continuamos a complementar a tabela renderizada (CCanvasTable) com novas funcionalidades. A tabela terá agora: o realce das linhas quando o mouse estiver em cima; possibilidade de adicionar um array de ícones para cada célula e um método para trocá-los; possibilidade de definir ou modificar o texto da célula durante a execução do programa, e muito mais.
Até agora, o tipo mais avançado de tabelas já desenvolvido em nossa biblioteca foi a CTable. Esta tabela é montada a partir de caixas de edição do tipo OBJ_EDIT, e seu posterior desenvolvimento tornou-se problemático. Portanto, em termos de capacidades máximas, é melhor desenvolver tabelas renderizadas do tipo CCanvasTable mesmo no atual estágio de desenvolvimento da biblioteca. Sua versão atual está completamente inerte, mas a partir deste artigo, nós vamos tentar corrigir esta situação.
Neste artigo, nós vamos discutir o controle Caixa de Texto Multilinha. Ao contrário dos objetos gráficos do tipo OBJ_EDIT, a versão apresentada não terá restrições quanto ao número de caracteres de entrada. Ele também adiciona o modo para transformar a caixa de texto em um editor de texto simples, onde o cursor pode ser movido usando o mouse ou as teclas.
O código da biblioteca precisa ser otimizado: ele deve ser mais regularizado, o que é - mais legível e compreensível para estudar. Além disso, nós vamos continuar a desenvolver os controles criados anteriormente: listas, tabelas e barras de rolagem.
O desenvolvimento da biblioteca para a criação de interfaces gráficas continua. Os controles Horário e a Lista de Caixas de Seleção serão discutidos neste momento. Além disso, agora a classe CTable fornece a capacidade de classificar os dados em ordem crescente ou decrescente.
Este artigo irá considerar novos controles: A Caixa de Edição de Texto, o Slider de Imagem, bem como os controles simples adicionais: Rótulo de Texto e Imagem. A biblioteca continua a crescer, e, além da introdução de novos controles, aqueles que foram criados anteriormente também estão sendo melhorados.
Desta vez, nós vamos discutir o controle gráfico padrão. Ele permitirá criar arrays de objetos gráficos com a possibilidade de sincronizar o deslocamento horizontal. Além disso, nós continuaremos a otimizar o código da biblioteca para reduzir o consumo de recursos do CPU.
Apresentamos neste artigo a próxima versão da biblioteca Easy And Fast (build 3). Foi corrigido certas falhas e adicionado novos recursos. Para maiores informações leia a continuação do artigo.
Desde a publicação do artigo anterior da série, a biblioteca Easy And Fast tem recebido algumas funcionalidades novas. A estrutura e o código da biblioteca foram parcialmente otimizados, reduzindo ligeiramente a carga da CPU. Alguns métodos recorrentes em muitas classes de controle foram transferidos para a classe base CElement.
O segundo capítulo da parte nove é dedicado aos controles barra de progresso e gráfico de linha. Como sempre, teremos exemplos detalhados para revelar como esses controles podem ser utilizados nas aplicações MQL personalizadas.
Com este artigo, nós começamos o capítulo nove da série de artigos dedicados à criação das interfaces gráficas nos terminais de negociação MetaTrader. Ele consiste de dois capítulos onde são apresentados os novos elementos do controle da interface, tais como o seletor de cores, o botão do seletor de cores, a barra de progresso e o gráfico de linha.