Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
GUI de origem popular. Testes beta abertos.
Alexey Barbashin, 2020.03.07 21:25
"mas talvez seja mais fácil fazer tudo nos objetos" - isto é mais do que lógico
"Sim, é claro que vamos contar parcialmente com isso". - então imediatamente somos corrigidos:
class CCoordPBase Наследуемся от CObject, то есть: class CCoordPBase : public CObject Хотя наверное можно и по другому: class Control : public CObject
CObject é a classe base de todos os objetos da biblioteca dos desenvolvedores. Feito por analogia com C++ e C#. O objeto base (tipo) em Sharp é Objeto.
As coordenadas e dimensões são propriedades do controle, assim como a cor da borda, cor e espessura, raios de arredondamento, ícones e texto.
Primeiro temos que definir que tipo de controle é elementar e depois descrever as propriedades básicas.
É claro que algumas das propriedades previamente definidas podem não ser usadas nos descendentes, não é um problema, mas é melhor tornar a básica a mais versátil.
Aqui está um exemplo de um simples controle universal:
Contém fundo, borda, raio, ícone, texto
Se você precisar de uma Etiqueta, você não especifica fundo, borda e ícone; se você precisar de um Painel, o conteúdo não é especificado; se você precisar de um botão de imagem, apenas ícone é especificado; se você precisar de um botão com uma imagem, o fundo, borda e imagem são especificados.
Ou seja, esta composição é bastante universal para a maioria dos controles.
Vejo, a questão da mudança de estilo ao pairar sobre ela mantendo as coordenadas... embora já seja um pouco claro
Existe um biliotec padrão por controle?
A essência doCObject é digitar todos os objetos.
Por exemplo, precisamos de uma biblioteca de listas (lista de itens, caixa combinada, lista de verificação, e assim por diante). Para cada tipo de elemento podemos criar um tipo diferente de matriz, como fez Anatoly, ou você pode usar uma ferramenta pronta:CArrayObj
Ou seja, muitas peças de código não precisam ser inventadas, elas já estão lá, basta pegá-las e usá-las.
Entendo que a questão é mudar o estilo ao pairar enquanto se mantém as coordenadas. embora pareça já estar claro
Existe um bilio padrão no controle?
A biblioteca padrão dos desenvolvedores pode ser tomada como base, eu não vejo nada de vergonhoso nela, sua hierarquia.
Claro que a partir daí devemos jogar fora tudo relacionado à construção direta, mas deixar o sistema de transferência de eventos - é realmente universal!
Com esta tecnologia, não importa a qual classe até mesmo o controle mais complexo pertença, os eventos serão passados através do sistema datilografado do objeto elementar.
O controle básico será desenhado no CControls subjacente, após o qual será gerado o evento OnPaint(). Isto permitirá ao usuário redesenhar/ redesenhar os controles da criança e geralmente permitir que o usuário redesenha o controle da forma que desejar.
Vamos lá!!!!!
e eu estava pensando em fazer uma simples interação
onde vamos entrar posicionamentos como à esquerda do último objeto em caso de linha ou coluna
Assim, vamos escrever um controlador universalÉ exatamente assim que deve ser feito: escrever a interação elementar.
Um controlador básico no início não tem que ter todas as propriedades necessárias, apenas um histórico é suficiente.
Afinal, a fim de tornar o controle em si, ele conterá a função correspondente. Portanto, ao adicionar quaisquer propriedades, teremos que modificar apenas uma função.
De acordo com a hierarquia de elementos?
CObject é um tipo básico
classe CControl : CObject público - o controle de base da própria biblioteca
classe CContainerControl : o controle público CControl - o controle de grupo. Um de seus campos será um conjunto de controles aninhados. Você pode ver um exemplo nabiblioteca padrão CWndContainer.
Sasha, desde que você já começou a codificar, faça um projeto open source em MQL, você será capaz de desenvolvê-lo em conjunto e compartilhá-lo com os outros. Quem sabe, talvez haja alguns.
Estou em espera por enquanto... olhando para as bibliotecas padrão.... há um monte de coisas desnecessárias
Não sei se são muitos, mas seria melhor escrever seu próprio código... ou herdarCChartObject
- www.mql5.com
Sasha, desde que você já começou a codificar, faça um projeto open source em MQL. Quem sabe, talvez haja alguns.
Acho que é um pouco cedo para começar do zero, temos que construir algo primeiro
Estou em espera por enquanto... olhando para as bibliotecas padrão.... há um monte de coisas desnecessárias
(embora não muito))) mas é melhor escrever seu próprio controle. ou você pode herdá-loCChartObject
Não, não!!!
Preste atenção!
Este controlador é apenas o caminho para lugar nenhum! Não precisamos de objetos gráficos discretos! Precisamos recorrer à tela - essa é a única maneira de obter desenvolvimento e possibilidades mais amplas.
E o fato de que você tem que fazer seu próprio controlador principal - isso é certo.
A biblioteca padrão divide propriedades e estados entre CWndObject e CWnd, enquanto nós precisamos unir tudo em um único controle.
Não, não!!!
Preste atenção!
Este controlador é o caminho para lugar nenhum! Não precisamos de objetos gráficos discretos! Precisamos recorrer ao kanvas - isso é a única coisa que nos dará desenvolvimento e amplas possibilidades.
E o fato de que você tem que fazer seu próprio controlador principal - isso é certo.
As propriedades e os estados na biblioteca padrão estão divididos entre CWndObject e CWnd, e precisamos unir todos em um único controle.
Passei um quarto de hora tentando criar um projeto e ele acabou sendo criado, agora estou olhando para como torná-lo público
Acho que é um pouco cedo para começar com uma tábua rasa.
Tenho certeza de que não é uma boa idéia começar do zero.
Pessoas muito espertas gastaram muito tempo e conhecimento para fazer a mesma biblioteca padrão ou a biblioteca do Anatoly.
As pessoas gastaram tempo e conhecimento e seria uma tolice não usá-lo.
Deveríamos apenas pegar o melhor, do nosso ponto de vista, em ambos e construir um novo.
Precisamos aprender com os erros de outras pessoas. Nós faremos o nosso).
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso