Обсуждение статьи "Графические интерфейсы III: Группы простых и многофункциональных кнопок (Глава 2)"
При компиляции файла SplitButton.mqh выдает ошибку "'return' - cannot convert from const pointer to nonconst pointer SplitButton.mqh 90 65"
Да, после последнего обновления терминала появилась такая ошибка. Правила "игры" немного изменились. Исправить можно просто удалив спецификатор const.
Перейдите к строке с ошибкой и замените эту строку:
CContextMenu *GetContextMenuPointer(void) const { return(::GetPointer(m_drop_menu)); }
На эту:
CContextMenu *GetContextMenuPointer(void) { return(::GetPointer(m_drop_menu)); }
//---
Подобные исправления нужно будет внести во всех файлах, где будет встречаться такая ошибка. В следующих статьях серии ошибка будет устранена.
Спасибо за сообщение.
Опубликована новая статья Графические интерфейсы III: Группы простых и многофункциональных кнопок (глава 2):
Автор: Анатолий Кажарский
Отличная работа!
Но: при попытке использовать панель в качестве индикатора в MT4 (!), каждое нажатие на "Иконку-кнопку" приводит к двукратному выводу вашего
::Print(__FUNCTION__," > id: ",id,"; lparam: ",lparam,"; dparam: ",dparam,"; sparam: ",sparam);
Таким образом, каждое действие по клику, как инкремент или что-то еще, будет сделано дважды :(
Есть ли способ исправить это?
P.S. Интересно то, что все работает нормально на MT5. Только в MT4 есть эта проблема при использовании в качестве индикатора. В качестве эксперта работает также нормально.
...
Есть ли способ исправить это?
P.S. Самое любопытное, что все прекрасно работает на MT5. Только в MT4 есть эта проблема при использовании в качестве индикатора. В качестве эксперта работает также нормально.
Привет,
Я сделал быстрое и грязное решение, которое работает для меня очень хорошо. Мой способ заключался в том, чтобы сначала проверить нажатие левой кнопки отдельно в OnEvent и, если она установлена, записать bool true в хелпер. После этого обычная строка if расширяется с помощью helper == true , а установка внутри if просто сбрасывает helper. Работает почти идеально. В некоторых случаях быстрые клики не упоминаются, но лучше медленные клики, чем двойные результаты :)
BTW: было бы неплохо, если бы кто-нибудь обновил все ваши текущие Библиотеки на английский язык. Ваши самые новые, например, статья 05 и т.д. только на русском.
Здравствуйте,
У меня вопрос,
как сделать черную часть вокруг иконок прозрачной?
Спасибо
Привет.
Я только что скачал файлы из статьи3.
Когда я скомпилировал его. я получил следующую ошибку
CContextMenu *GetContextMenuPointer(void) const { return(::GetPointer(m_drop_menu));
Файл = splitButton.mqh.
Кто-нибудь знает, как это исправить?
Я пытаюсь создать простую кнопку.
Спасибо
спасибо
Удалить "const" - это нормально
CContextMenu *GetContextMenuPointer(void) { return(::GetPointer(m_drop_menu));
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Графические интерфейсы III: Группы простых и многофункциональных кнопок (Глава 2):
Первая глава третьей части серии была посвящена простым и многофункциональным кнопкам. Во второй главе рассмотрим группы взаимосвязанных кнопок, позволяющих создавать в приложениях элементы, когда пользователь может выбирать какую-либо одну опцию из представленного набора (группы).
Разработка класса для создания групп простых кнопок
Группа простых кнопок представляет собой массив графических объектов типа OBJ_BUTTON. Отличительная особенность подобных элементов управления заключается в том, что одновременно может быть нажата только одна кнопка в группе. На текущий момент создать класс этого элемента можно двумя способами:
Второй вариант проще тем, что не нужно будет создавать дополнительный метод для того, чтобы каждый элемент типа CSimpleButton попал в базу указателей, поэтому воспользуемся им.
Разработка класса для создания групп радио-кнопок
Создаём файл RadioButtons.mqh с классом CRadioButtons, в котором должны быть стандартные виртуальные методы и члены класса для сохранения и получения указателя на форму. Примеры можете посмотреть в классах других элементов в статье выше. Подключаем файл RadioButtons.mqh к библиотеке (WndContainer.mqh).
Каждая радио-кнопка будет собираться из трёх объектов примитивов:
Рис. 3. Составные части радио-кнопок.
Автор: Anatoli Kazharski