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

 

Спасибо большое за то, что поделились. Отлично!

Я упустил только одну вещь в вашем примере. Вы должны подсказать, как включить информацию о данных в виде текста и чисел.

Например:

Значение стоп-лосса: 50.50

Значение тейк-профита: 250.00

Скользящая средняя (200): 110.5.


Знаете ли вы какую-нибудь статью, которая научит делать такие вещи?

 
Guilherme Mendonca :

Большое спасибо за то, что поделились. Превосходно!

Я упустил только одну вещь в вашем примере. Вы должны помочь, как включить информацию о данных в виде текста и чисел.

Например:

Stop Loss Value:50.50

Значение тейк-профита: 250.00

Скользящая средняя (200): 110.5.


Не знаете ли вы какую-нибудь статью, обучающую, как делать такие вещи?

Посмотрите примеры стандартных панелей в редакторе MetaEditor.

 

Не поможете с таким вопросом.

Я добавил в Ваш файл "AppWindowTwoButtonsClass" функцию сдвига панели setShift().  Теперь если мы двинем границу графика справа и она подойдет к панели, панель начнет двигаться влево вместе с границей графика.

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
  {
   ExtDialog.ChartEvent(id,lparam,dparam,sparam);
   if(id == CHARTEVENT_CHART_CHANGE) ExtDialog.setShift();
  }

Вызов этой функции выделил желтым.

Вопрос в том, можно ли каким-то образом сделать вызов этой функции через этот псевдокод

EVENT_MAP_BEGIN(cGPanel)            

EVENT_MAP_END(CAppDialog)

чтобы вызов был из класса наследника, а не из глобальной функции OnChartEvent().

Несколько дефайнов перепробовал: ON_NO_ID_EVENT(event,handler), ON_OTHER_EVENTS(handler). Но что-то плохо понимаю их работу.

Файл с добавочной функцией setShift() прикладываю.

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
В языке MQL5 предусмотрена обработка некоторых предопределенных событий. Функции для обработки этих событий должны быть определены в программе MQL5: имя функции, тип возвращаемого значения, состав параметров (если они есть) и их типы должны строго соответствовать описанию функции-обработчика события. Именно по типу возвращаемого значения и по...
Файлы:
 
Очень полезно, спасибо за публикацию.
Небольшой вопрос,

Почему вы используете следующее;
//--- создайте диалог приложения
   if(!AppWindow.Create(0,"AppWindow",0,20,20,360,324))
      return(INIT_FAILED);
//--- запустите приложение
   AppWindow.Run();
//--- успех
   return(INIT_SUCCEEDED);
  }
Вместо;
//--- создайте диалог приложения
   AppWindow.Create(0,"AppWindow",0,20,20,360,324));
//--- запустите приложение
   AppWindow.Run();
/
  }
который я использовал в графическом интерфейсе mql4.

Это необходимость для mql5 или у этого есть другие преимущества?

Спасибо
 
emargrie :
Очень полезно, спасибо за публикацию.
Небольшой вопрос,

Как получилось, что вы используете следующее;
Вместо;
Который я использовал в графическом интерфейсе mql4.

Является ли это необходимостью для mql5 или у этого есть другие преимущества?

Спасибо

Если ВЫ действительно не видите разницы, то Вам срочно нужно выбросить старый терминал. Старый терминал плохо на вас влияет. К сожалению, старый терминал научил вас писать очень опасный код - вы привыкли писать код БЕЗ ЧЕКОВ на возврат ошибок.

 
Vladimir Karputov:

Если вы действительно не видите разницы, вам срочно нужно выбросить старый терминал. Старый терминал плохо на вас влияет. К сожалению, старый терминал научил вас писать очень опасный код - вы привыкли писать код БЕЗ ЧЕКОВ на возврат ошибок.

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

 
emargrie :

Это ни в коем случае не было подкопом к вашему сообщению, это был скорее вопрос о том, почему это сделано, чтобы я научился этому - мои знания в области программирования очень ограничены.

Я уже объяснял: нельзя писать код, который не проверяет возврат ошибок.

 
Vladimir Karputov:

Я уже объяснял: нельзя писать код, который не проверяет возврат ошибок.

Спасибо
 

Привет, Владимир

Это хорошо написанная статья, хорошая работа

с уважением, Павел

 
Paul Anscombe:

Здравствуйте, Владимир

Это хорошо написанная статья, хорошая работа

с уважением, Павел

Спасибо