//+------------------------------------------------------------------+//| Проверка изменения состояния левой кнопки мыши |//+------------------------------------------------------------------+bool CMouse::CheckChangeLeftButtonState(conststring mouse_state)
{
bool left_button_state=(bool)int(mouse_state);
//--- Отправим сообщение об изменении состояния левой кнопки мышиif(m_left_button_state!=left_button_state)
::EventChartCustom(m_chart.ChartId(),ON_CHANGE_MOUSE_LEFT_BUTTON,0,0.0,"");
//--- Вернуть текущее состояние левой кнопки мышиreturn(left_button_state);
}
//+------------------------------------------------------------------+
Мы сюда передаем sparam и, на сколько я понимаю, любое ненулевое значение воспринимаем как нажата ЛКМ. Но ненулевые значения дают все кнопки мыши, плюс Shift и Control как минимум.
Мы сюда передаем sparam и, на сколько я понимаю, любое ненулевое значение воспринимаем как нажата ЛКМ. Но ненулевые значения дают все кнопки мыши, плюс Shift и Control как минимум.
Это так и задумано?
Нет, это было просто временным решением для моих пользовательских задач.
В библиотеке сейчас вроде бы даже вообще нигде не используется. Можно доработать при необходимости.
Нет, это было просто временным решением для моих пользовательских задач.
В библиотеке сейчас вроде бы даже вообще нигде не используется. Можно доработать при необходимости.
Очень часто используется :) Например, перетаскивание окна, быстрое пролистывание SpinEdit. Везде, где проверяется состояние ЛКМ.
Сделал так
//+------------------------------------------------------------------+//| Проверка изменения состояния левой кнопки мыши |//+------------------------------------------------------------------+bool CMouse::CheckChangeLeftButtonState(conststring mouse_state)
{
bool left_button_state=((int)mouse_state==1);//--- Отправим сообщение об изменении состояния левой кнопки мышиif(m_left_button_state!=left_button_state)
::EventChartCustom(m_chart.ChartId(),ON_CHANGE_MOUSE_LEFT_BUTTON,0,0.0,"");
//--- Вернуть текущее состояние левой кнопки мышиreturn(left_button_state);
}
//+------------------------------------------------------------------+
О том, для чего предназначена эта библиотека, более подробно можно прочитать в самой первой статье: Графические интерфейсы I: Подготовка структуры библиотеки (Глава 1). В конце статей каждой части представлен список глав со ссылками. Там же есть возможность загрузить к себе на компьютер полную версию библиотеки на текущей стадии разработки...
Акция , рост % за день , далее штатные данные , объемы на покупку с начала дня BuyVol , объемы на продажу SellVol , VolDeltа разница объемов с начала дня , доделаю еще % текущей разницы по объемам
зеленая дельта - желательно удерживать бай, либо пытаться искать точку входа в бай и т д.
string m_header_text; // Column header textcolor m_header_color; // Column header text color //André
CTCell m_rows[]; // Array of the table rows
----------------------------------------------------------------------------------------------------------------------
void HeadersColorPressed(constcolor clr) { m_headers_color_pressed=clr; }
//void HeadersTextColor(const color clr) { m_headers_text_color=clr; } //André
----------------------------------------------------------------------------------------------------------
void SetHeaderText(constuint column_index,conststring value);
//--- Setting the color text to the specified header //Andrévoid HeadersTextColor(constcolor &array[]);
--------------------------------------------------------------------------------------------------------------------
//André //+------------------------------------------------------------------+//| Fills the array of text alignment modes |//+------------------------------------------------------------------+void CTable::HeadersTextColor(constcolor &array[])
{
int total=0;
//--- Leave, if a zero-sized array was passedif((total=CheckArraySize(array))==WRONG_VALUE)
return;
//--- Store the value into the arrayfor(int c=0; c<total; c++)
m_columns[c].m_header_color=array[c];
}
------------------------------------------------------------------------------------------------------------------------
//André//--- Text coloruint clr=::ColorToARGB(m_columns[c].m_header_color);
В файле Window.mqh
//--- Handling the even of clicking the form buttonsif(id==CHARTEVENT_CUSTOM+ON_CLICK_BUTTON)
{
//Andréif(StringFind(sparam, CElementBase::ProgramName(), 0)<0)
return;
//--- Close the window
-------------------------------------------------------------------------------
int subwin=(CElementBase::ProgramType()==PROGRAM_INDICATOR)? ::ChartWindowFind() : m_subwin;
//--- Send a message about it//André//Print(__FUNCTION__, " ", subwin, " ", PROGRAM_NAME);//::EventChartCustom(m_chart_id,ON_WINDOW_COLLAPSE,CElementBase::Id(),subwin,"");
::EventChartCustom(m_chart_id,ON_WINDOW_COLLAPSE,CElementBase::Id(),subwin, PROGRAM_NAME);
//--- Send a message about the change in the graphical interface
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
}
---------------------------------------------------------------------------------------
int subwin=(CElementBase::ProgramType()==PROGRAM_INDICATOR)? ::ChartWindowFind() : m_subwin;
//--- Send a message about it//André//::EventChartCustom(m_chart_id,ON_WINDOW_EXPAND,CElementBase::Id(),subwin,"");
::EventChartCustom(m_chart_id,ON_WINDOW_EXPAND,CElementBase::Id(),subwin,PROGRAM_NAME);
//--- Send a message about the change in the graphical interface
::EventChartCustom(m_chart_id,ON_CHANGE_GUI,CElementBase::Id(),0.0,"");
В файле WndEvents.mqh
return(false);
//--- If the window identifier and the sub-window number match//Andréif(m_sparam!=m_windows[0].ProgramName())
return(false);
if(m_lparam==m_windows[0].Id() && (int)m_dparam==m_subwin)
Я прокомментировал строки с моим именем, чтобы облегчить локализацию
Добрый вечер.
Mouse.mqh
Мы сюда передаем sparam и, на сколько я понимаю, любое ненулевое значение воспринимаем как нажата ЛКМ. Но ненулевые значения дают все кнопки мыши, плюс Shift и Control как минимум.
Это так и задумано?
Добрый вечер.
Mouse.mqh
Мы сюда передаем sparam и, на сколько я понимаю, любое ненулевое значение воспринимаем как нажата ЛКМ. Но ненулевые значения дают все кнопки мыши, плюс Shift и Control как минимум.
Это так и задумано?
Нет, это было просто временным решением для моих пользовательских задач.
В библиотеке сейчас вроде бы даже вообще нигде не используется. Можно доработать при необходимости.
Нет, это было просто временным решением для моих пользовательских задач.
В библиотеке сейчас вроде бы даже вообще нигде не используется. Можно доработать при необходимости.
Сделал так
Нет, это было просто временным решением для моих пользовательских задач.
В библиотеке сейчас вроде бы даже вообще нигде не используется. Можно доработать при необходимости.
В последнем релизе - https://www.mql5.com/ru/code/19703
не удается добавить
//CCanvasTable m_canvas_table;Проблема видимо в том, что примеры смотрю в старых версиях!
В последнем релизе - https://www.mql5.com/ru/code/19703
не удается добавить
Проблема видимо в том, что примеры смотрю в старых версиях!
Взял версию Build 10 , https://www.mql5.com/ru/articles/3042 там работает!
Пришлось делать нечто вроде , что не есть гуд
MQL5\Include\EasyAndFastGUI_B10
MQL5\Include\EasyAndFastGUI_B16
Чудная библиотека!
Забацал простой но полезный индикатор для ММВБ.
Акция , рост % за день , далее штатные данные , объемы на покупку с начала дня BuyVol , объемы на продажу SellVol , VolDeltа разница объемов с начала дня , доделаю еще % текущей разницы по объемам
зеленая дельта - желательно удерживать бай, либо пытаться искать точку входа в бай и т д.
Взял версию Build 10 , https://www.mql5.com/ru/articles/3042 там работает!
Пришлось делать нечто вроде , что не есть гуд
MQL5\Include\EasyAndFastGUI_B10
MQL5\Include\EasyAndFastGUI_B16
Спасибо за сообщение. У меня пока совсем нет времени. Я посмотрю чуть позже, в чём там может быть проблема.
Взял версию Build 10 , https://www.mql5.com/ru/articles/3042 там работает!
Пришлось делать нечто вроде , что не есть гуд
MQL5\Include\EasyAndFastGUI_B10
MQL5\Include\EasyAndFastGUI_B16
Когда-то библиотека была очень сильно переделана, номер билда не помню. Скорей всего в новых билдах просто нету CCanvasTable :)
В заключениях в статьям есть общая схема библиотеки на момент выхода стати, можно сравнить.
Невозможно ли раскрасить столбец, используя функцию таблицы?
Если вы добавите два индикатора.
Я из Бразилии, я использовал переводчика для написания. Извините за любую ошибку на этом языке.
В файле Table.mqh
В файле Window.mqh
В файле WndEvents.mqh
Я прокомментировал строки с моим именем, чтобы облегчить локализацию
Прикреплены файлы с измененным полным кодом.
Надеюсь, вы помогли