Hi guys i dnot know if i understund a good logic of a checkbox in cpanel i want know if when i flag cjeckbox it must return 1 and when defalg it must rerun zero ?
because in my sript return always zero
paneldialog.mqh
//+------------------------------------------------------------------+//| PanelDialog.mqh |//| Copyright 2000-2024, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
#include <Controls\Edit.mqh>
#include <Controls\ListView.mqh>
#include <Controls\ComboBox.mqh>
#include <Controls\SpinEdit.mqh>
#include <Controls\RadioGroup.mqh>
#include <Controls\CheckGroup.mqh>
//+------------------------------------------------------------------+//| defines |//+------------------------------------------------------------------+#define INDENT_LEFT (11)
#define INDENT_TOP (11)
#define INDENT_RIGHT (11)
#define INDENT_BOTTOM (11)
#define CONTROLS_GAP_X (10)
#define CONTROLS_GAP_Y (10)
#define BUTTON_WIDTH (100)
#define BUTTON_HEIGHT (20)
#define EDIT_HEIGHT (20)
//+------------------------------------------------------------------+//| Class CPanelDialog |//+------------------------------------------------------------------+class CPanelDialog : public CAppDialog
{
private:
CEdit m_edit;
CButton m_button1;
CButton m_button2;
CButton m_button3;
CListView m_list_view;
CCheckBox m_checkGroupBreakevenALL; // Nuovo nome
CButton m_buttonBREAKEVEN_Snipe;
public:
CPanelDialog(void);
~CPanelDialog(void);
virtualbool Create(constlong chart,conststring name,constint subwin,constint x1,constint y1,constint x2,constint y2);
virtualbool OnEvent(constint id,constlong &lparam,constdouble &dparam,conststring &sparam);
protected:
bool CreateEdit(void);
bool CreateButton1(void);
bool CreateButton2(void);
bool CreateCheckGroupBreakevenALL(void); // Nuovo nomebool CReateButtonBREAKEVEN_Snipe(void);
virtualbool OnResize(void);
void OnClickButton1(void);
void OnClickButton2(void);
void OnClickButton3(void);
bool OnChangeCheckGroupBreakevenALL(void);
void OnChangeListView(void);
void OnClickButtonBREAKEVEN_Snipe(void);
};
//+------------------------------------------------------------------+//| Event Handling |//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CPanelDialog)
ON_EVENT(ON_CLICK, m_button1, OnClickButton1)
ON_EVENT(ON_CLICK, m_button2, OnClickButton2)
ON_EVENT(ON_CLICK, m_button3, OnClickButton3)
ON_EVENT(ON_CHANGE, m_checkGroupBreakevenALL, OnChangeCheckGroupBreakevenALL) // Aggiornato con il nuovo nome
ON_EVENT(ON_CHANGE, m_list_view, OnChangeListView)
ON_EVENT(ON_CLICK, m_buttonBREAKEVEN_Snipe, OnClickButtonBREAKEVEN_Snipe)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+//| Constructor & Destructor |//+------------------------------------------------------------------+
CPanelDialog::CPanelDialog(void) { }
CPanelDialog::~CPanelDialog(void) { }
//+------------------------------------------------------------------+//| Create |//+------------------------------------------------------------------+bool CPanelDialog::Create(constlong chart,conststring name,constint subwin,constint x1,constint y1,constint x2,constint y2)
{
if (!CAppDialog::Create(chart, name, subwin, x1, y1, x2, y2))
returnfalse;
if (!CreateEdit()) returnfalse;
if (!CreateButton1()) returnfalse;
if (!CreateButton2()) returnfalse;
if (!CreateCheckGroupBreakevenALL()) returnfalse; // Aggiornato con il nuovo nomeif(!CReateButtonBREAKEVEN_Snipe()) return(false);
returntrue;
}
//+------------------------------------------------------------------+//| Create the display field |//+------------------------------------------------------------------+bool CPanelDialog::CreateEdit(void)
{
int x1 = INDENT_LEFT;
int y1 = INDENT_TOP;
int x2 = ClientAreaWidth() - (INDENT_RIGHT + BUTTON_WIDTH + CONTROLS_GAP_X);
int y2 = y1 + EDIT_HEIGHT;
if (!m_edit.Create(m_chart_id, m_name + "Edit", m_subwin, x1, y1, x2, y2))
returnfalse;
if (!m_edit.ReadOnly(true))
returnfalse;
if (!Add(m_edit))
returnfalse;
m_edit.Alignment(WND_ALIGN_WIDTH, INDENT_LEFT, 0, INDENT_RIGHT + BUTTON_WIDTH + CONTROLS_GAP_X, 0);
returntrue;
}
//+------------------------------------------------------------------+//| Create Buttons |//+------------------------------------------------------------------+bool CPanelDialog::CreateButton1(void)
{
int x1 = ClientAreaWidth() - (INDENT_RIGHT + BUTTON_WIDTH);
int y1 = INDENT_TOP;
int x2 = x1 + BUTTON_WIDTH;
int y2 = y1 + BUTTON_HEIGHT;
if (!m_button1.Create(m_chart_id, m_name + "Button1", m_subwin, x1, y1, x2, y2))
returnfalse;
if (!m_button1.Text("Button1"))
returnfalse;
if (!Add(m_button1))
returnfalse;
returntrue;
}
//+------------------------------------------------------------------+//| Create Button2 |//+------------------------------------------------------------------+bool CPanelDialog::CreateButton2(void)
{
int x1 = ClientAreaWidth() - (INDENT_RIGHT + BUTTON_WIDTH);
int y1 = INDENT_TOP + BUTTON_HEIGHT + CONTROLS_GAP_Y;
int x2 = x1 + BUTTON_WIDTH;
int y2 = y1 + BUTTON_HEIGHT;
if (!m_button2.Create(m_chart_id, m_name + "Button2", m_subwin, x1, y1, x2, y2))
returnfalse;
if (!m_button2.Text("Button2"))
returnfalse;
if (!Add(m_button2))
returnfalse;
returntrue;
}
//+------------------------------------------------------------------+//| Create the CheckGroupBreakevenALL |//+------------------------------------------------------------------+bool CPanelDialog::CreateCheckGroupBreakevenALL(void)
{
int x1 = 1396;
int y1 = 41;
int x2 = 1496;
int y2 = 61;
// Creazione del gruppo di checkboxif (!m_checkGroupBreakevenALL.Create(m_chart_id, m_name + "CheckGroupBreakevenALL", m_subwin, x1, y1, x2, y2))
returnfalse;
if (!m_checkGroupBreakevenALL.Text("All Trade"))
returnfalse;
if (!Add(m_checkGroupBreakevenALL))
returnfalse;
returntrue;
}
//+------------------------------------------------------------------+//| Create the "ButtonBREAKEVEN_Snipe" button |//+------------------------------------------------------------------+bool CPanelDialog::CReateButtonBREAKEVEN_Snipe(void)
{
//--- coordinates//int sx=(ClientAreaWidth()-(INDENT_LEFT+INDENT_RIGHT+BUTTON_WIDTH))/3-CONTROLS_GAP_X;int x1 = 2396;
int y1 = 41;
int x2 = 2496;
int y2 = 61;
//--- createif(!m_buttonBREAKEVEN_Snipe.Create(m_chart_id,m_name+"ButtonBREAKEVEN_Snipe",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_buttonBREAKEVEN_Snipe.Text("BREAKEVEN SNIPE"))
return(false);
if(!Add(m_buttonBREAKEVEN_Snipe))
return(false);
m_buttonBREAKEVEN_Snipe.Alignment(WND_ALIGN_RIGHT,0,0,INDENT_RIGHT,0);
//--- succeedreturn(true);
}
//+------------------------------------------------------------------+//| OnResize |//+------------------------------------------------------------------+bool CPanelDialog::OnResize(void)
{
if (!CAppDialog::OnResize()) returnfalse;
int x = ClientAreaLeft() + INDENT_LEFT;
int sx = (ClientAreaWidth() - (INDENT_LEFT + INDENT_RIGHT + BUTTON_WIDTH)) / 3 - CONTROLS_GAP_X;
returntrue;
}
//+------------------------------------------------------------------+//| Event Handlers |//+------------------------------------------------------------------+void CPanelDialog::OnClickButtonBREAKEVEN_Snipe(void)
{
Print ("BOTTONE BREAK EVEN 8772818");
}
void CPanelDialog::OnClickButton1(void)
{
m_edit.Text(__FUNCTION__);
}
void CPanelDialog::OnClickButton2(void)
{
m_edit.Text(__FUNCTION__);
}
void CPanelDialog::OnClickButton3(void)
{
if (m_button3.Pressed())
m_edit.Text(__FUNCTION__ + "On");
else
m_edit.Text(__FUNCTION__ + "Off");
}
//+------------------------------------------------------------------+//| OnChangeCheckGroupBreakevenALL |//+------------------------------------------------------------------+bool CPanelDialog::OnChangeCheckGroupBreakevenALL(void)
{
Print("OnChangeCheckGroupBreakevenALL triggered");
Print("Valore checkbox: " + IntegerToString(m_checkGroupBreakevenALL.Value()));
returntrue;
}
void CPanelDialog::OnChangeListView(void)
{
m_edit.Text(__FUNCTION__ + " \"" + m_list_view.Select() + "\"");
}
simplepanel.mq5
//+------------------------------------------------------------------+//| SimplePanel.mq5 |//| Copyright 2000-2024, MetaQuotes Ltd. |//| https://www.mql5.com |//+------------------------------------------------------------------+#property copyright"Copyright 2000-2024, MetaQuotes Ltd."#property link"https://www.mql5.com"#property version"1.00"#property indicator_separate_window#property indicator_plots0#property indicator_buffers0#property indicator_minimum0.0#property indicator_maximum0.0#include "PanelDialog.mqh"//+------------------------------------------------------------------+//| Global Variables |//+------------------------------------------------------------------+
CPanelDialog ExtDialog;
//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+intOnInit(void)
{
//--- create application dialogif(!ExtDialog.Create(0,"Simple Panel",0,50,50,390,200))
return(INIT_FAILED);
//--- run applicationif(!ExtDialog.Run())
return(INIT_FAILED);
//--- succeedreturn(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+//| Custom indicator deinitialization function |//+------------------------------------------------------------------+voidOnDeinit(constint reason)
{
//--- destroy application dialog
ExtDialog.Destroy(reason);
}
//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+intOnCalculate(constint rates_total,
constint prev_calculated,
constint begin,
constdouble &price[])
{
//---//--- return value of prev_calculated for next callreturn(rates_total);
}
//+------------------------------------------------------------------+//| ChartEvent function |//+------------------------------------------------------------------+voidOnChartEvent(constint id,
constlong &lparam,
constdouble &dparam,
conststring &sparam)
{
ExtDialog.ChartEvent(id,lparam,dparam,sparam);
}
//+------------------------------------------------------------------+
Hi guys i dnot know if i understund a good logic of a checkbox in cpanel i want know if when i flag cjeckbox it must return 1 and when defalg it must rerun zero ?
because in my sript return always zero
paneldialog.mqh
simplepanel.mq5