Como você já é um especialista com a prática de criar controles sobre kanvas,
por que você não descreve suas classes base e modelo de eventos em geral?
----
Podemos começar de sua base e depois adicionar mais controles - botão - campo de entrada - deslizador - lista suspensa (já em seu arquivo) - seleção do tempo (já em seu arquivo)
As especificações devem ser colocadas em vírgulas invertidas :)
Neste momento estou muito ocupado com o trabalho principal, assim que estiver livre farei o esquema completo, não será antes de 25.07.2016.
Em termos gerais:
Objeto básico CFrame - objeto abstrato sobre tela, tem x,y, largura, altura e um conjunto de métodos virtuais para manipulação de eventos (OnMouse..., OnNotify, OnPaint), pode conter outros objetos CFrame.
CWindow é um descendente de CFrame, que implementa uma tela e é um objeto gráfico em um gráfico, recebe e lida com eventos externos (OnChartEvent), distribuindo-o a objetos (criança) que residem sobre ele. Todos os objetos GUI são gerados a partir da CFrame, complementando-a com os métodos necessários
O projeto P&F Chart não tem um controlador de eventos global, ele é necessário para aplicações com 2 ou mais janelas (leia-se kanvas). É o que deve distribuir eventos para as janelas e monitorar a captura de uma instância (teclado + mouse) por controles GUI.
O problema com o campo de entrada é que não há uma boa idéia de como usar o que está disponível.
IMHO neste momento, você só pode fazer um EDIT completo se você desenhar seu próprio teclado GUI, mas seria difícil suportar idiomas e é inconveniente digitar com um mouse...
Renat Fatkhullin: A propósito, no MetaEditor você pode iniciar projetos, convidar outros participantes, dar-lhes direitos e trabalhar em conjunto no projeto.
Clique com o botão direito do mouse no projeto, selecione "Adicionar direitos de acesso" no menu, já usei isso em um dos meus projetos irmãos, é bastante útil - tudo está na ponta dos dedos...
Eu notei que você seguiu o caminho onde os blocos de gui são representados cada um por seu próprio bitmap.
um ponto importante para quem lê isto e já começou a pensar sobre o assunto: O trabalho deve ser feito apenas em um bitmap, com todos os elementos de engano nele apresentados. Com a ordem z em mente. Neste caso, haverá mais possibilidades de renderização. (sombras, gradientes, etc.). E o controle é simplificado (não iremos para o nível de objetos MT)
Zorro: O problema com o campo de entrada é que não há uma boa idéia de como usar o que está disponível.
IMHO neste momento, você só pode fazer um EDIT completo se você desenhar seu próprio teclado GUI, mas seria difícil suportar idiomas e é inconveniente digitar com um mouse...
Os Projetos MetaEditor permitem aos programadores desenvolver remotamente aplicações em MQL4/MQL5. Os projetos são implementados especificamente para este fim. Os projetos são implementados através do Armazenamento MQL5. Assim, um usuário deve ter uma conta válida na MQL5.community, assim como a MQL5 Storage. Trabalhar com projetos tem todas as vantagens do armazenamento MQL5: armazenamento seguro do código fonte. No caso de uma falha no disco rígido, a cópia local dos códigos pode ser rapidamente recuperada do armazenamento. Acesso ao armazenamento a partir de qualquer computador. Você pode entrar no MetaEditor usando sua conta MQL5.community e acessar o projeto a partir de qualquer PC. O acesso a cada projeto é definido apenas por um autor do projeto (um usuário que o criou). Ninguém pode acessar um projeto sem a permissão do autor. A pasta de projetos na MQL4 ou MQL5 é destinada a projetos compartilhados. No Navegador é...
MetaTrader 5 Ajuda | 2015.12.02 10:22
E em geral, você precisa testar o trabalho conjunto com os projetos - acho que haverá perguntas.
Sobre o tema da utilização de kanvas como uma IU.
Eu diria que é uma beleza).
Estou muito satisfeito com a rapidez. tudo é bastante adequado em termos de tempo de renderização e controle.
Esconderijo para GIF e PNG
Certo.
Como você já é um especialista com a prática de criar controles sobre kanvas,
por que você não descreve suas classes base e modelo de eventos em geral?
----
Podemos começar de sua base e depois adicionar mais controles
- botão
- campo de entrada
- deslizador
- lista suspensa (já em seu arquivo)
- seleção do tempo (já em seu arquivo)
Neste momento estou muito ocupado com o trabalho principal, assim que estiver livre farei o esquema completo, não será antes de 25.07.2016.
Em termos gerais:
Objeto básico CFrame - objeto abstrato sobre tela, tem x,y, largura, altura e um conjunto de métodos virtuais para manipulação de eventos (OnMouse..., OnNotify, OnPaint), pode conter outros objetos CFrame.
CWindow é um descendente de CFrame, que implementa uma tela e é um objeto gráfico em um gráfico, recebe e lida com eventos externos (OnChartEvent), distribuindo-o a objetos (criança) que residem sobre ele.
Todos os objetos GUI são gerados a partir da CFrame, complementando-a com os métodos necessários
O projeto P&F Chart não tem um controlador de eventos global, ele é necessário para aplicações com 2 ou mais janelas (leia-se kanvas).
É o que deve distribuir eventos para as janelas e monitorar a captura de uma instância (teclado + mouse) por controles GUI.
IMHO neste momento, você só pode fazer um EDIT completo se você desenhar seu próprio teclado GUI, mas seria difícil suportar idiomas e é inconveniente digitar com um mouse...
A propósito, no MetaEditor você pode iniciar projetos, convidar outros participantes, dar-lhes direitos e trabalhar em conjunto no projeto.
Você se refere ao armazenamento MQL5?
Renat, você poderia me dizer com mais detalhes onde ler sobre este mecanismo?
Tenho usado o Staorage MQL5 desde seu lançamento, mas ainda não encontrei a opção de acesso de grupo lá.
OK.
o CFrame é claro.
---
Eu notei que você seguiu o caminho onde os blocos de gui são representados cada um por seu próprio bitmap.um ponto importante para quem lê isto e já começou a pensar sobre o assunto:
O trabalho deve ser feito apenas em um bitmap, com todos os elementos de engano nele apresentados. Com a ordem z em mente.
Neste caso, haverá mais possibilidades de renderização. (sombras, gradientes, etc.).
E o controle é simplificado (não iremos para o nível de objetos MT)
O problema com o campo de entrada é que não há uma boa idéia de como usar o que está disponível.
IMHO neste momento, você só pode fazer um EDIT completo se você desenhar seu próprio teclado GUI, mas seria difícil suportar idiomas e é inconveniente digitar com um mouse...
Você se refere ao armazenamento MQL5?
Renat, você poderia nos dizer onde ler mais sobre este mecanismo?
Tenho usado o Staorage MQL5 desde seu lançamento, mas ainda não encontrei a opção de acesso compartilhado lá.
MetaTrader 5 Ajuda | 2015.12.02 10:22
E em geral, você precisa testar o trabalho conjunto com os projetos - acho que haverá perguntas.