class SNCheckGroup
Класс группы с чекбоксами, расширяющий стандартный элемент управления для создания на графике
Сообщите нам, если считаете, что материал размещён без разрешения.
Обращение по товару «combobox.mqh» отправится на рассмотрение. Укажите контакт для ответа и опишите причину.
Данная библиотека представляет собой набор графических элементов управления для платформы MetaTrader, написанный на языке MQL. Библиотека предоставляет классы для создания комбинированных списков, групп с чекбоксами и чекбоксов на графиках торгового терминала.
Основной класс CMyComboBox реализует выпадающий список с поддержкой добавления, вставки, обновления и удаления элементов, а также выбором элемента по индексу, тексту или значению. Класс SNComboBox расширяет функциональность, добавляя режим ввода только чисел и возможность переключения редактирования.
Класс SNCheckBox предоставляет чекбокс с возможностью получения и установки логического состояния. Класс SNCheckGroup позволяет создавать группы с настраиваемым размером и шрифтом. Все элементы поддерживают создание на графиках и настройку визуальных свойств.
Классов: 4 · методов: 38 · конструкторов: 1 · деструкторов: 1 · отдельных функций: 0
class SNCheckGroup
Класс группы с чекбоксами, расширяющий стандартный элемент управления для создания на графике
class CMyComboBox
Класс выпадающего списка с поддержкой управления элементами и событиями
class SNComboBox
Класс выпадающего списка с расширенными настройками редактирования и ввода
class SNCheckBox
Класс чекбокса для графического интерфейса
void SetSize(int w,int h)
Установка ширины и высоты элемента группы
int Width()
Получение ширины элемента группы
int Height()
Получение высоты элемента группы
bool Create(long chart,string name,int subwin,int x1,int y1)
Создание графического объекта группы на указанном графике
void FontSize(int isize)
Настройка размера шрифта для всех элементов группы
CMyComboBox(void)
Конструктор класса выпадающего списка с заданием начальных размеров
~CMyComboBox(void)
Деструктор класса выпадающего списка
bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2)
Создание выпадающего списка на графике с заданными координатами
bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
Обработка событий графика для элемента управления
bool OnChange(const long &lparam,const double &dparam)
Обработка изменения выбранного элемента списка
bool AddItem(const string item,const long value)
Добавление элемента в выпадающий список
void ListViewItems(const int value)
Установка количества видимых строк в выпадающем списке
bool ItemAdd(const string item,const long value)
Добавление элемента во внутренний список с привязкой значения
bool ItemInsert(const int index,const string item,const long value)
Вставка элемента в список по указанному индексу
bool ItemUpdate(const int index,const string item,const long value)
Обновление текста и значения элемента по индексу
bool ItemDelete(const int index)
Удаление элемента из списка по индексу
bool ItemsClear(void)
Полная очистка всех элементов списка
string Select(void)
Получение текста текущего выбранного элемента
bool Select(const int index)
Выбор элемента списка по индексу
bool SelectByText(const string text)
Выбор элемента списка по текстовому значению
bool SelectByValue(const long value)
Выбор элемента списка по числовому значению
long Value(void)
Получение числового значения текущего выбранного элемента
bool Show(void)
Отображение элемента управления и скрытие выпадающего списка
bool Save(const int file_handle)
Сохранение текущего значения элемента в файл
bool Load(const int file_handle)
Загрузка значения элемента из файла
void SetSize(int w,int h)
Установка ширины и высоты элемента выпадающего списка
int Width()
Получение ширины элемента выпадающего списка
int Height()
Получение высоты элемента выпадающего списка
bool Create(long chart,string name,int subwin,int x1,int y1)
Создание выпадающего списка на графике с расширенными возможностями
void OnDeinit(int chart_id,int reason)
Удаление графического объекта при деинициализации графика
void Edit(bool bStatus)
Переключение режима редактирования поля ввода
void NumericOnly(bool bNumeric)
Установка режима допустимого ввода только числовых значений
void FontSize(int isize)
Настройка размера шрифта для всех элементов выпадающего списка
void SetSize(int w,int h)
Установка ширины и высоты чекбокса
int Width()
Получение ширины чекбокса
int Height()
Получение высоты чекбокса
bool Create(long chart,string name,int subwin,int x1,int y1)
Создание чекбокса на указанном графике
void DrawUpdate()
Обновление отрисовки чекбокса
bool GetBool()
Получение текущего логического состояния чекбокса
void SetBool(bool ddata)
Установка логического состояния чекбокса
#ifndef __SOVETNIKOV_COMBOBOX_21312423dfdsf
#define __SOVETNIKOV_COMBOBOX_21312423dfdsf
#include <sovetnikovGUI\defines.mqh>
#include <sovetnikovGUI\Edit.mqh>
#include <Controls\ComboBox.mqh>
#include <Controls\CheckGroup.mqh>
#include <Controls\CheckBox.mqh>
class SNCheckGroup: public CCheckGroup
{
protected:
int m_width;
int m_height;
int m_x;
int m_y;
public:
SNCheckGroup():m_width(CONTROLS_BUTTON_WIDTH),m_height(CONTROLS_SPIN_MIN_HEIGHT) {};
void SetSize(int w=0,int h=0)
{
if(w!=0) m_width=w;
else m_width=CONTROLS_BUTTON_WIDTH;
if(h!=0) m_height=h;
else m_height=CONTROLS_SPIN_MIN_HEIGHT;
}
int Width()
{
return m_width;
}
int Height()
{
return m_height;
}
bool Create(long chart,string name,int subwin,int x1,int y1)
{
bool bCreate=true;
if(ObjectFind(chart,name)<0)
{
bCreate=Create(chart,name,subwin,x1,y1,x1+m_width,y1+m_height);
}
Size(m_width,m_height);
Move(x1,y1);
return bCreate;
}
void FontSize(int isize)
{
for(int i=0; i<ControlsTotal(); i++)
{
CWnd *pwnd=Control(i);
if(pwnd==NULL) continue;
ObjectSetInteger(m_chart_id,pwnd.Name(),OBJPROP_FONTSIZE,isize);
}
}
};
class CMyComboBox: public CWndContainer
{
public:
CEdit m_edit; // the entry field object
CBmpButton m_drop; // the button object
CListView m_list; // the drop-down list object
int m_item_height; // height of visible row
int m_view_items; // number of visible rows in the drop-down list
public:
CMyComboBox(void);
~CMyComboBox(void);
virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2);
virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam);
virtual bool OnChange(const long &lparam,const double &dparam);
bool AddItem(const string item,const long value=0);
void ListViewItems(const int value)
{
m_view_items=value;
}
virtual bool ItemAdd(const string item,const long value=0)
{
return(m_list.ItemAdd(item,value));
}
virtual bool ItemInsert(const int index,const string item,const long value=0)
{
return(m_list.ItemInsert(index,item,value));
}
virtual bool ItemUpdate(const int index,const string item,const long value=0)
{
return(m_list.ItemUpdate(index,item,value));
}
virtual bool ItemDelete(const int index)
{
return(m_list.ItemDelete(index));
}
virtual bool ItemsClear(void)
{
return(m_list.ItemsClear());
}
string Select(void)
{
return(m_edit.Text());
}
bool Select(const int index);
bool SelectByText(const string text);
bool SelectByValue(const long value);
long Value(void)
{
return(m_list.Value());
}
virtual bool Show(void);
virtual bool Save(const int file_handle);
virtual bool Load(const int file_handle);
protected:
virtual bool CreateEdit(void);
virtual bool CreateButton(void);
virtual bool CreateList(void);
virtual bool OnClickEdit(void);
virtual bool OnClickButton(void);
virtual bool OnChangeList(void);
bool ListShow(void);
bool ListHide(void);
void CheckListHide(const int id,int x,int y);
};
bool CMyComboBox::OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
{
SN_ON_EVENT(ON_CLICK,m_edit,OnClickEdit)
SN_ON_EVENT(ON_CLICK,m_drop,OnClickButton)
SN_ON_EVENT(ON_CHANGE,m_list,OnChangeList)
SN_ON_LIST(OnChange);
CheckListHide(id,(int)lparam,(int)dparam);
return CWndContainer::OnEvent(id,lparam,dparam,sparam);
}
CMyComboBox::CMyComboBox(void) : m_item_height(CONTROLS_COMBO_ITEM_HEIGHT),
m_view_items(CONTROLS_COMBO_ITEMS_VIEW)
{
}
CMyComboBox::~CMyComboBox(void)
{
}
bool CMyComboBox::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2)
{
m_chart_id=chart;
m_name=name;
m_subwin=subwin;
if(y2-y1<CONTROLS_COMBO_MIN_HEIGHT)
return(false);
if(!CWndContainer::Create(chart,name,subwin,x1,y1,x2,y2))
return(false);
m_id=GetTickCount();
if(!CreateEdit())
return(false);
if(!CreateButton())
return(false);
if(!CreateList())
return(false);
long iid=m_id;
m_edit.Id(++iid);
m_drop.Id(++iid);
m_list.Id(++iid);
return(true);
}
bool CMyComboBox::CreateEdit(void)
{
if(!m_edit.Create(m_chart_id,m_name+"Edit",m_subwin,0,0,Width(),Height()))
return(false);
if(!m_edit.Text(""))
return(false);
if(!m_edit.ReadOnly(true))
return(false);
if(!Add(m_edit))
return(false);
return(true);
}
bool CMyComboBox::CreateButton(void)
{
int x1=Width()-(CONTROLS_BUTTON_SIZE+CONTROLS_COMBO_BUTTON_X_OFF);
int y1=(Height()-CONTROLS_BUTTON_SIZE)/2;
int x2=x1+CONTROLS_BUTTON_SIZE;
int y2=y1+CONTROLS_BUTTON_SIZE;
if(!m_drop.Create(m_chart_id,m_name+"Drop",m_subwin,x1,y1,x2,y2))
return(false);
if(!m_drop.BmpNames("::res\\DropOff.bmp","::res\\DropOn.bmp"))
return(false);
if(!Add(m_drop))
return(false);
Показано первые 50% кода (символов: 8267)
Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.
На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.
Зачем нужен email? После подтверждения оплаты файл сохранится в кабинете на этот email. Если аккаунта ещё нет, мы создадим его и пришлём ссылку для задания пароля. Если аккаунт уже есть, покупка добавится в него. Укажите адрес, к которому у вас есть доступ.
Чтобы оформить заказ, введите email и перейдите к оплате.