//+------------------------------------------------------------------+
//| ControlsButton.mq5 |
//| Copyright 2000-2024, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, MetaQuotes Software Corp."
#property link "https://www.mql5.com"
#property version "1.00"
#property description "Kontrol Panelleri ve İletişim Kutuları. Gösterim sınıfı CButton"
#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
//+------------------------------------------------------------------+
//| tanımlar |
//+------------------------------------------------------------------+
//--- girintiler ve boşluklar
#define INDENT_LEFT (11) // sol girinti (izin verilen çerçeve genişliği ile)
#define INDENT_TOP (11) // üst girinti (izin verilen çerçeve genişliği ile)
#define INDENT_RIGHT (11) // sağ girinti (izin verilen çerçeve genişliği ile)
#define INDENT_BOTTOM (11) // alt girinti (izin verilen çerçeve genişliği ile)
#define CONTROLS_GAP_X (5) // X koordinatıyla boşluk
#define CONTROLS_GAP_Y (5) // Y kordinatıyla boşluk
//--- düğmeler için
#define BUTTON_WIDTH (100) // X koordinatıyla genişlik
#define BUTTON_HEIGHT (20) // Y koordinatıyla genişlik
//--- gösterge alanı için
#define EDIT_HEIGHT (20) // Y koordinatıyla genişlik
//--- grup kontrolleri için
#define GROUP_WIDTH (150) // X koordinatıyla genişlik
#define LIST_HEIGHT (179) // Y koordinatıyla genişlik
#define RADIO_HEIGHT (56) // Y koordinatıyla genişlik
#define CHECK_HEIGHT (93) // Y koordinatıyla genişlik
//+------------------------------------------------------------------+
//| CControlsDialog Sınıfı |
//| Kullanım: Kontroller uygulamasının ana iletişim kutusu |
//+------------------------------------------------------------------+
class CControlsDialog : public CAppDialog
{
private:
CButton m_button1; // düğme nesnesi
CButton m_button2; // düğme nesnesi
CButton m_button3; // sabit düğme nesnesi
public:
CControlsDialog(void);
~CControlsDialog(void);
//--- oluştur
virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2);
//--- çizelge olay işleyicisi
virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
protected:
//--- bağımlı kontroller oluştur
bool CreateButton1(void);
bool CreateButton2(void);
bool CreateButton3(void);
//--- bağımlı olayların işleyicileri
void OnClickButton1(void);
void OnClickButton2(void);
void OnClickButton3(void);
};
//+------------------------------------------------------------------+
//| Olay İşleme |
//+------------------------------------------------------------------+
EVENT_MAP_BEGIN(CControlsDialog)
ON_EVENT(ON_CLICK,m_button1,OnClickButton1)
ON_EVENT(ON_CLICK,m_button2,OnClickButton2)
ON_EVENT(ON_CLICK,m_button3,OnClickButton3)
EVENT_MAP_END(CAppDialog)
//+------------------------------------------------------------------+
//| Yapıcı |
//+------------------------------------------------------------------+
CControlsDialog::CControlsDialog(void)
{
}
//+------------------------------------------------------------------+
//| Yıkıcı |
//+------------------------------------------------------------------+
CControlsDialog::~CControlsDialog(void)
{
}
//+------------------------------------------------------------------+
//| Oluştur |
//+------------------------------------------------------------------+
bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2)
{
if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
//--- bağımlı kontroller oluştur
if(!CreateButton1())
return(false);
if(!CreateButton2())
return(false);
if(!CreateButton3())
return(false);
//--- başarılı
return(true);
}
//+------------------------------------------------------------------+
//| "Button1" düğmesini oluştur |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButton1(void)
{
//--- koordinatlar
int x1=INDENT_LEFT;
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2=x1+BUTTON_WIDTH;
int y2=y1+BUTTON_HEIGHT;
//--- oluştur
if(!m_button1.Create(m_chart_id,m_name+"Button1",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_button1.Text("Button1"))
return(false);
if(!Add(m_button1))
return(false);
//--- başarılı
return(true);
}
//+------------------------------------------------------------------+
//| "Button2" düğmesini oluştur |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButton2(void)
{
//--- koordinatlar
int x1=INDENT_LEFT+(BUTTON_WIDTH+CONTROLS_GAP_X);
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2=x1+BUTTON_WIDTH;
int y2=y1+BUTTON_HEIGHT;
//--- oluştur
if(!m_button2.Create(m_chart_id,m_name+"Button2",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_button2.Text("Button2"))
return(false);
if(!Add(m_button2))
return(false);
//--- başarılı
return(true);
}
//+------------------------------------------------------------------+
//| "Button3" sabit düğmesini oluştur |
//+------------------------------------------------------------------+
bool CControlsDialog::CreateButton3(void)
{
//--- koordinatlar
int x1=INDENT_LEFT+2*(BUTTON_WIDTH+CONTROLS_GAP_X);
int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y);
int x2=x1+BUTTON_WIDTH;
int y2=y1+BUTTON_HEIGHT;
//--- oluştur
if(!m_button3.Create(m_chart_id,m_name+"Button3",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_button3.Text("Locked"))
return(false);
if(!Add(m_button3))
return(false);
m_button3.Locking(true);
//--- başarılı
return(true);
}
//+------------------------------------------------------------------+
//| Olay İşleyici |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickButton1(void)
{
Comment(__FUNCTION__);
}
//+------------------------------------------------------------------+
//| Olay İşleyici |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickButton2(void)
{
Comment(__FUNCTION__);
}
//+------------------------------------------------------------------+
//| Olay İşleyici |
//+------------------------------------------------------------------+
void CControlsDialog::OnClickButton3(void)
{
if(m_button3.Pressed())
Comment(__FUNCTION__+" State of the control: On");
else
Comment(__FUNCTION__+" State of the control: Off");
}
//+------------------------------------------------------------------+
//| Global Variables |
//+------------------------------------------------------------------+
CControlsDialog ExtDialog;
//+------------------------------------------------------------------+
//| Expert initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- Uygulama iletişim kutusunu göster
if(!ExtDialog.Create(0,"Controls",0,40,40,380,344))
return(INIT_FAILED);
//--- uygulamayı çalıştır
ExtDialog.Run();
//--- başarılı
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- yorumları sil
Comment("");
//--- iletişim kutusunu yok et
ExtDialog.Destroy(reason);
}
//+------------------------------------------------------------------+
//| Expert chart event function |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, // olay tanıtıcısı
const long& lparam, // long tipli olay parametresi
const double& dparam, // double tipli olay parametresi
const string& sparam) // string tipli olay parametresi
{
ExtDialog.ChartEvent(id,lparam,dparam,sparam);
}
|