Опубликована статья Графические интерфейсы IV: Информационные элементы интерфейса (Глава 1):
Автор: Anatoli Kazharski
Анатолий, отличная серия статей, причем актуальная. Не могли бы вы: 1. Публиковать в начале каждой статьи список предыдущих. Поиск на сайте не всегда рулит правильно) 2. Делать некую сумму знаний в виде примера. Не надо его разжевывать, я думаю, кто читает Ваши статьи - разберется. Но было бы интересно посмотреть сразу на веселый результат. 3. Успехов, жду продолжений)
Спасибо.
Можно написать потом отдельную статью, в которой в качестве примера будет создано приложение с графическим интерфейсом со всеми элементами управления библиотеки. И уже в этой статье сделать полное содержание со ссылками на все статьи. Такой вариант будет удобен тем, кто просто хочет использовать библиотеку в своих MQL-приложениях не вникая в то, как она устроена.
Спасибо.
Можно написать потом отдельную статью, в которой в качестве примера будет создано приложение с графическим интерфейсом со всеми элементами управления библиотеки. И уже в этой статье сделать полное содержание со ссылками на все статьи.
Толь, не глядел что в последних двух версиях, но до них точно есть такой баг в CCtatusBar:
Если в таймере идёт обновление статусной строки m_status_bar.ValueToItem(), то если основное окно свёрнуто, то статусная строка висит на графике постоянно - она не сворачивается. Приходится постоянно контролировать в своём CProgram таким образом:
if(m_status_bar.IsDropdown()) { m_status_bar.ValueToItem(....); }
Чтобы исправить, нужно дописать в CCtatusBar в метод ValueToItem() такую проверку:
//+------------------------------------------------------------------+ //| Устанавливает значение по указанному индексу | //+------------------------------------------------------------------+ void CStatusBar::ValueToItem(const uint index,const string value) { //--- Проверка на выход из диапазона uint array_size=::ArraySize(m_items); if(array_size<1 || m_wnd.IsMinimized()) return; //--- Скорректировать значение индекса, если выходит из диапазона uint correct_index=(index>=array_size)? array_size-1 : index; //--- Установка переданного текста m_items[correct_index].Description(value); } //+------------------------------------------------------------------+
Тогда будет всё нормально, и не нужно в своей программе постоянно помнить об этом и контролировать.
...
Если в таймере идёт обновление статусной строки m_status_bar.ValueToItem(), то если основное окно свёрнуто, то статусная строка висит на графике постоянно - она не сворачивается.
...
Проверил. Почти во всех тестовых примерах из статей есть статусная строка с обновлением в таймере. Описанное поведение не воспроизводится.
Знаешь, хотел видео записать как так получается, но, увы, после возврата к твоей версии ValueToItem(), у меня тоже исчезло такое поведение. Но ведь было... Может потому, что рынок сейчас закрыт...
У себя оставлю так, как предложил - чтобы не нарваться ещё раз где-нибудь, когда-нибудь опять на этот баг.
Пробую на четверке.
Поведение штатное.
Пользуясь случаем, спрошу:
как можно в статусной строке использовать иконки?
Типа индикатора соединения или еще чего...
)
...
Пользуясь случаем, спрошу:
как можно в статусной строке использовать иконки?
Типа индикатора соединения или еще чего... )
В статусной строке пока нет такой возможности, но скоро будет.
Спасибо еще раз!
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Опубликована статья Графические интерфейсы IV: Информационные элементы интерфейса (Глава 1):
На текущий момент в разрабатываемой библиотеке для создания графических интерфейсов есть форма и несколько элементов управления, которые можно к ней присоединять. Сейчас у нас все готово для рассмотрения вопроса многооконного режима, однако этим мы займемся во второй главе данной статьи. Прежде мы напишем классы, с помощью которых можно будет создавать информационные элементы интерфейса, такие, как «статусная строка» и «всплывающая подсказка».
«Статусная строка» (или «строка состояния») относится к информационным элементам графического интерфейса. Этот элемент предназначен для оперативного вывода каких-либо важных данных, сведений, подсказок и т.д.
В этой статье мы создадим простой вариант строки состояния, без возможности присоединения к её пунктам контекстных меню. Так же, как и другие элементы интерфейса, статусная строка будет собираться из нескольких объектов-примитивов:
Рис. 1. Составные части элемента «Статусная строка».
Если всё сделали правильно, то результат должен быть таким, как на скриншоте ниже:
Рис. 2. Тест элемента «Статусная строка».
Разработка класса для создания элемента «Статусная строка» завершена. Полную версию можно посмотреть в приложенных к статье файлах.
Автор: Anatoli Kazharski