Discussão do artigo "Como adicionar rapidamente paneis de controle a indicadores e conselheiros (EA)"
Obrigado pelo artigo! Como posso alterar a cor do fundo e da borda do próprio painel? Não encontrei essa opção nas classes padrão.
Obrigado pelo artigo! Como posso alterar a cor do fundo e da borda do próprio painel? Não encontrei isso nas classes padrão.
Redefinir as definições em Defines.mqh.
- Na próxima atualização, a biblioteca padrão será restaurada e o arquivo Defines.mqh será restaurado de acordo.
- Não é bom editar a biblioteca padrão.
- Na atualização mais próxima, a biblioteca padrão será restaurada - consequentemente, o arquivo Defines.mqh será restaurado.
- Não é bom editar a biblioteca padrão.
Não sugeri que você o editasse. Você precisa substituí-lo depois de ativar esse arquivo, mas antes de criar o painel.
Por favor, diga-me como fazer isso em um exemplo simples, pois não sei muito sobre oop. Alterei as cores das definições na própria biblioteca - a cor do painel não muda
Depois de alterar o arquivo, recompile o EA e ele deverá funcionar. E não se esqueça de fazer um backup para restaurar sua variante após a atualização.
A substituição é feita usando #undef e #define. Mas você precisa colocá-los no lugar certo ;)
A substituição é feita com #undef e #define. Mas você precisa colocá-los no lugar certo ;)
Depois de alterar o arquivo, recompile o EA e ele deverá funcionar. E não se esqueça de fazer um backup para restaurar sua variante após a atualização.
A substituição é feita usando #undef e #define. Mas você precisa colocá-los no lugar certo ;)
Bem, foi assim que fiz, mas nada funciona. O painel continua branco como antes
O compilador escreve Macro redifinition, ou seja, é um tipo de substituição....
//+------------------------------------------------------------------+ //|MyPanel.mqh //|Direitos autorais © 2013, DeltaTrader | //| http://www.deltatrader.com.br //+------------------------------------------------------------------+ #property copyright "DeltaTrader © 2013" #property link "www.deltatrader.com.br" #property version "1.000" #property description "Test Panel" #property indicator_plots 0 //+------------------------------------------------------------------+ //| Inclui| //+------------------------------------------------------------------+ #include <Controls\Dialog.mqh> #include <Controls\Label.mqh> #include <Controls\Panel.mqh> #include <Controls\Edit.mqh> #include <Controls\Defines.mqh> #define CONTROLS_DIALOG_COLOR_BORDER_LIGHT C'0x00,0x00,0xFF' #define CONTROLS_DIALOG_COLOR_BORDER_DARK C'0x00,0x00,0xFF' #define CONTROLS_DIALOG_COLOR_BG C'0x00,0x00,0xFF' #define CONTROLS_DIALOG_COLOR_CAPTION_TEXT C'0x00,0x00,0xFF' #define CONTROLS_DIALOG_COLOR_CLIENT_BG C'0x00,0x00,0xFF' #define CONTROLS_DIALOG_COLOR_CLIENT_BORDER C'0x00,0x00,0xFF' //+------------------------------------------------------------------+ //| Parâmetros globais| //+------------------------------------------------------------------+ int panelXX = 200; int panelYY = 200; int panelWidth = 600; int panelHeight = 400; CAppDialog m_panel; //--- Objetos de lance CPanel m_bidcolor; CLabel m_bidlabel; //--- Pergunte aos objetos CPanel m_askcolor; CLabel m_asklabel; CEdit m_edit; //+------------------------------------------------------------------+ //| Na inicialização| //+------------------------------------------------------------------+ int OnInit() { //--- Criação de painel m_panel.Create(0,"blablabla",0,panelXX,panelYY,panelWidth,panelHeight); //--- Rótulo e cores do lance m_bidcolor.Create(0,"Bid Background Color",0,1,1,panelWidth-30,30); m_bidcolor.ColorBackground(clrYellow); m_panel.Add(m_bidcolor); m_bidlabel.Create(0,"Bid Text",0,5,5,0,0); m_bidlabel.Text("Bid "+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)); m_bidlabel.Color(clrBlue); m_panel.Add(m_bidlabel); //--- Pergunte aos rótulos e às cores m_askcolor.Create(0,"Ask Background Color",0,1,1,panelWidth-30,30); m_askcolor.ColorBackground(clrAqua); m_panel.Add(m_askcolor); m_asklabel.Create(0,"Ask Text",0,5,30,0,0); m_asklabel.Text("Ask "+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)); m_asklabel.Color(clrRed); m_panel.Add(m_asklabel); m_edit.Create(0,"Bid Background Color",0,1,1,panelWidth-30,30); m_panel.Add(m_edit); //--- Painel de execução m_panel.Run(); return(0); } //+------------------------------------------------------------------+ //| No DeInit| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- Destruir painel m_panel.Destroy(reason); //--- Excluir todos os objetos ObjectsDeleteAll(0,0); } //+------------------------------------------------------------------+ //| No cálculo| //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const int begin, const double &price[]) { //--- Uma etiqueta de oferta muito simples m_bidlabel.Text("Bid "+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_BID),_Digits)); //--- Um rótulo de solicitação muito simples m_asklabel.Text("Ask "+DoubleToString(SymbolInfoDouble(_Symbol,SYMBOL_ASK),_Digits)); //--- return(rates_total); } //+------------------------------------------------------------------+ //| Evento no gráfico| //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- Mova o painel com o mouse m_panel.ChartEvent(id,lparam,dparam,sparam); //--- } //+------------------------------------------------------------------+
- 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
Novo artigo Como adicionar rapidamente paneis de controle a indicadores e conselheiros (EA) foi publicado:
Você deseja adicionar ao seu indicador ou conselheiro um painel gráfico para um controle fácil e rápido, mas não sabe como fazê-lo? Neste artigo, vou mostrar passo a passo como "atar" o painel de diálogo com os parâmetros de entrada do seu programa MQL4/MQL5.
Fig. 5. Comunicação do conselheiro e do painel
Ao ser executado, o conselheiro deve apresentar seus parâmetros no painel. Após clicar no botão "Aplicar alterações" e os dados terem sido alterados, o painel também deve retornar os parâmetros alterados para o conselheiro, para a sua inicialização com novos parâmetros.
Autor: Karputov Vladimir