Обсуждение статьи "Как создать графическую панель любой сложности и как это работает" - страница 2

 

Добрый день!

Если панель переместить к правому краю графика, а потом изменить ширину графика,например включив окно навигатора, то панель "уезжает" за границы графика. Ее становится не видно.

Как это можно исправить - чтобы панель не перемещалась за границы графиков.


1 2


За ранее большое спасибо. 

 
Dmitriy Tyunin:

Добрый день!

Если панель переместить к правому краю графика, а потом изменить ширину графика,например включив окно навигатора, то панель "уезжает" за границы графика. Ее становится не видно.

Как это можно исправить - чтобы панель не перемещалась за границы графиков.




За ранее большое спасибо. 

Так, на вскидку - сохранять размеры графика где-то в переменных. Постоянно отслеживать событие изменение ширины графика и чтобы при этом график был активным. 

 
Dmitriy Tyunin:

Если панель переместить к правому краю графика, а потом изменить ширину графика,например включив окно навигатора, то панель "уезжает" за границы графика. Ее становится не видно.

Как это можно исправить - чтобы панель не перемещалась за границы графиков.

Вот в этой статье есть модификация исходников с поддержкой контроля границ и еще много чего для реализации GUI.

Применение OLAP в трейдинге (Часть 2): Визуализация результатов интерактивного анализа многомерных данных
Применение OLAP в трейдинге (Часть 2): Визуализация результатов интерактивного анализа многомерных данных
  • www.mql5.com
В первой статье, посвященной OLAP в трейдинге, мы рассмотрели общие принципы аналитической обработки многомерных данных и предоставили готовые классы MQL, позволяющие применить OLAP на практике для истории счета или торговых отчетов. Вместе с тем вывод результатов анализа был пока реализован в упрощенном текстовом виде в лог экспертов. Для...
 
@Vladimir Karputov
Владимир почему при закрытии одной панели закрываются обе? как этого избежать?
#include <Controls\Dialog.mqh>

CAppDialog AppWindow;
CAppDialog AppWindow2;

int OnInit()
  {
//--- create application dialog
   if(!AppWindow.Create(0,"AppWindow",0,20,20,360,324))
      return(INIT_FAILED);
   if(!AppWindow2.Create(0,"AppWindow",0,20+400,20,360+400,324))
      return(INIT_FAILED);
//--- run application
   AppWindow.Run();
   AppWindow2.Run();
   return(INIT_SUCCEEDED);
  }

void OnDeinit(const int reason)
  {
//--- destroy dialog
   AppWindow.Destroy(reason);
   AppWindow2.Destroy(reason);
  }
//+------------------------------------------------------------------+
//| Expert chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // event ID  
                  const long& lparam,   // event parameter of the long type
                  const double& dparam, // event parameter of the double type
                  const string& sparam) // event parameter of the string type
  {
   AppWindow.ChartEvent(id,lparam,dparam,sparam);
   AppWindow2.ChartEvent(id,lparam,dparam,sparam);
  }
//+------------------------------------------------------------------+
Vladimir Karputov
Vladimir Karputov
  • www.mql5.com
Люди. Граждане! Огромная просьба - заполняйте свой профиль на сайте и пользуйтесь стандартными программами - устанавливайте Skype. У Skype есть очень полезная функция - показ рабочего стола. В таком случае можно оперативно подсказать по возникшей проблеме. Помните - время - деньги! Древняя народная мудрость гласит: если хочешь помочь...
 
Ruslan Khasanov:
Задайте разные имена для каждого окна - AppWindow и AppWindow1 и т.д.

так у них и так разные имена 

скрин

изменение строки 

if(!AppWindow2.Create(0,"AppWindow2",0,20+400,20,360+400,324))

ничего не дает.
Или вы имеете ввиду что-то другое?

 
Да действительно, ошибся...
 
peterlogin:
*** как этого избежать?

Один советник - одна панель.

 
Как заставить панель быть поверх объектов созданных позже создания самой панели?

Например поверх линии:
пример
 
peterlogin:
Как заставить панель быть поверх объектов созданных позже создания самой панели?

Например поверх линии:

Не создавать графических объектов после создания панели.

Или свернуть/развернуть панель.
Документация по MQL5: Графические объекты / ObjectCreate
Документация по MQL5: Графические объекты / ObjectCreate
  • www.mql5.com
[in]  Номер подокна графика. 0 означает главное окно графика. Указанное подокно должно существовать, в противном случае функция возвращает false. Возвращает true при успешной постановке команды в очередь указанного графика, иначе false. Если объект был уже создан ранее, то производится попытка изменить его координаты. При вызове ObjectCreate...
 
Комментарии, не относящиеся к этой теме, были перенесены в "Вопросы от начинающих MQL5 MT5 MetaTrader 5".
Причина обращения: