Bibliotecas: EasyAndFastGUI - biblioteca para criar interfaces gráficas do usuário - página 23

 

Olá a todos,

Tentei usar essa biblioteca e adicionar um histograma com várias séries, como o da incrível biblioteca HighChart JS...




Primeiro tentei usar o componente CGraph, mas parece que não é possível adicionar várias séries no modo Histograma, ou eu não consegui.

Em seguida, encontrei o componente da biblioteca padrão do MT5 em Scripts \ Examples \ Canvas \ Charts \ HistogramChartSample.mq5.



Consegui personalizá-lo um pouco ...


e depois tentei criar um CHistogram com base no CElement. Então, criei um componente CHistogram na pasta Controls. Faço referência a esse componente em WndContainer.mqh e crio um expert de amostra em EasyAndFastGUI \ Experts \ och_test_histogram.mq 5.

Mas não consegui incluir no componente CWindow.

Isso permitirá adicionar histograma e pizza no CWindow...

Qualquer ajuda será bem-vinda.

Atenciosamente,

och

Interactive JavaScript charts for your webpage | Highcharts
  • www.highcharts.com
Highcharts - Interactive JavaScript charts for your web pages.
Arquivos anexados:
 

Olá a todos,


Corrigi o problema, mas ainda tenho um vazamento de memória quando removo o expert.



Não sei como rastrear esse vazamento de memória...


Saudações,

och

Arquivos anexados:
EasyAndFastGUI.zip  1022 kb
 

Hi Anatoli,

I'm getting difficult to study all articles about your library. I don't wanna get in the architecture and details how it's designed. I just wanna make it works into my EAs. Don't you never think about to create a kind of tutorial for it ?

An issue. When I compile ExampleEAF, MetaEditor shows me these warnings (I use MT5):

MetaEditor Warnings after compile.

Best regards,

jeff

 

Olá a todos,

Yevgen Drumachyk, você recebeu alguma resposta sobre a correção a ser aplicada ao programa?

Obrigado por sua ajuda

 

Boa tarde, Anatoly. Gostaria de parabenizá-lo por seu excelente trabalho. E aproveito a oportunidade para perguntar se você pode encaixar o histograma na última coluna à direita em uma tabela de três colunas. A primeira coluna seria a lista de preços, a segunda coluna seria o volume de negociações em cada nível de preço e a terceira coluna seria o histograma. Traduzi do português para o russo. Espero que tenha sido compreensível.

 
tailertche #:

Boa tarde, Anatoly. Gostaria de parabenizá-lo por seu excelente trabalho. E aproveito a oportunidade para perguntar se você pode encaixar o histograma na última coluna à direita em uma tabela de três colunas. A primeira coluna seria a lista de preços, a segunda coluna seria o volume de negociações em cada nível de preço e a terceira coluna seria o histograma. Traduzi do português para o russo. Espero que tenha sido compreensível.

Boa tarde.

Infelizmente, não estou trabalhando nessa biblioteca há muito tempo. Estou ocupado com outro projeto agora.

 
Anatoli Kazharski # :

Boa tarde.

Infelizmente, eu não lidei com essa biblioteca por muito tempo. Ocupado agora com outro projeto.

Bom dia. Fiz algumas alterações no código e obtive um ótimo resultado. Mas tudo graças aos seus ensinamentos. Parabéns mais uma vez por um trabalho que realmente merece ser reconhecido.

 

Olá, essa biblioteca ainda é compatível?

Obrigado

 

Olá, você precisa substituir


CElement:: Update(true)

CElementBase:: IsLocked()

CElementBase:: IsVisible()

CElementBase:: IsAvailable()


Por exemplo



Espero que isso ajude

Saudações

 

Você pode me explicar por que o evento de fechamento da janela pode não ser gerado para uma janela adicional. Para a janela principal, obtenho o id 1007 em OnChartEvent(), mas para a janela adicional, não....

Defino o uso do botão Fechar usando o método CloseButtonIsUsed() da mesma forma que na janela principal. Recebo a janela e a cruz de fechamento. Mas quando você o pressiona, o código de fechamento correto não é gerado. E nenhum evento funciona. A janela adicional não se move, entre outras coisas.

bool CButton::OnClickButton(const string pressed_object)
  {
//--- Sair se (1) nome de objeto estranho ou (2) item estiver bloqueado
   if(m_canvas.ChartObjectName()!=pressed_object || CElementBase::IsLocked())
      return(false);
//--- Se for um botão com dois estados
   if(m_two_state)
      IsPressed(!IsPressed());
//--- Redesenhe o elemento
   Update(true);
//--- Enviar uma mensagem sobre isso
   ::EventChartCustom(m_chart_id,ON_CLICK_BUTTON,CElementBase::Id(),CElementBase::Index(),m_canvas.ChartObjectName());
   return(true);
  }

Aqui. Por algum motivo, m_canvas.ChartObjectName()!=pressed_object.