← К каталогу
Исходный код · ID 2415

plusbig.mqh

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

PlusBig — это библиотека на языке MQL для отображения многострочных комментариев в виде графических меток на графике. Она позволяет настраивать шрифт, размер, цвет, а также расположение и интервалы между строками вывода. Библиотека управляет созданием, обновлением и удалением объектов типа OBJ_LABEL. В состав входит набор вспомогательных функций для отладочного вывода с контролем уровня детализации и частоты печати.

Настройки программы

НастройкаОписание
BigS0 Заголовок секции — Текстовый заголовок, отображаемый в начале списка настроек PlusBig.
BigFontName Имя шрифта — Название шрифта, используемого для отрисовки текста меток.
BigFontSize Размер шрифта — Размер шрифта в пунктах для текста графических меток.
BigFontColor Цвет шрифта — Цвет текста, применяемый к графическим меткам.
BigTopOffset Верхний отступ — Начальное смещение по вертикали от верхнего края графика для размещения меток.
BigLeftOffset Левый отступ — Горизонтальное смещение от левого края графика для размещения меток.
BigEmptyGap Пустой интервал — Вертикальный интервал, добавляемый при пустой строке в тексте.
BigLineGap Межстрочный интервал — Вертикальный интервал между соседними непустыми строками меток.
BigD1 Заголовок отладки — Текстовый заголовок, обозначающий начало раздела свойств отладки.
BigViewDebugNotify Уведомления отладки — Включает отправку push-уведомлений с отладочными сообщениями.
BigViewDebug Уровень отладки — Пороговый уровень детализации отладочного вывода; сообщения печатаются при уровне не ниже заданного.
BigViewDebugNoStack Периодичность без стека — Задаёт периодичность вывода отладочных сообщений при уровне отладки 2 и выше.
BigViewDebugNoStackEnd Конец диапазона без стека — Определяет конечную границу диапазона печати в режиме ограниченной частоты вывода.

Состав библиотеки

Классов: 0 · методов: 0 · конструкторов: 0 · деструкторов: 0 · отдельных функций: 10

Функции
Функция void BigInit()

Инициализирует внутренние переменные библиотеки перед использованием.

Функция void BigDeInit()

Удаляет все ранее созданные графические метки с графика.

Функция void BigComment(string cmt)

Отображает переданную многострочную строку в виде графических меток на графике.

Функция int BigStringSplit(string cmt, string by)

Разбивает строку на массив подстрок по указанному разделителю и возвращает количество строк.

Функция bool BigCheckLabel()

Создаёт или обновляет графические метки на графике с заданным расположением и размерами.

Функция void BigDebugPrint(int dbg, string fn, string msg)

Выводит отладочное сообщение в журнал или отправляет уведомление в зависимости от настроек уровня.

Функция string BigDebugInt(string key, int val)

Форматирует целочисленное значение в строку отладочного лога.

Функция string BigDebugDbl(string key, double val, int dgt)

Форматирует вещественное значение с заданной точностью в строку отладочного лога.

Функция string BigDebugStr(string key, string val)

Форматирует строковое значение в строку отладочного лога.

Функция string BigDebugBln(string key, bool val)

Форматирует логическое значение в строку отладочного лога.

Получить полный код

Поиск по коду файла

#define  NL "\n"

extern string     BigS0                      = "-->PlusBig Settings<--";
extern string     BigFontName                = "Arial";
extern double     BigFontSize                = 9;
extern color      BigFontColor               = Yellow;
extern int        BigTopOffset               = 10;
extern int        BigLeftOffset              = 20;
extern int        BigEmptyGap                = 1;
extern int        BigLineGap                 = 15;

string BigName       = "PlusBig";
string BigVer        = "1.0.1";

extern string     BigD1                      = "===Debug Properties===";
extern bool       BigViewDebugNotify         = false;
extern int        BigViewDebug               = 0;
extern int        BigViewDebugNoStack        = 1000;
extern int        BigViewDebugNoStackEnd     = 10;

string BigLabelName[];//store object names
string BigLabelText[];//store text
int    BigLineCount;// number of NL

void BigInit()
{

   return;
}

void BigDeInit()
{

   for( int i=0; i<ArraySize(BigLabelName); i++ )
      if( ObjectFind(BigLabelName[i] ) >= 0 )   ObjectDelete(BigLabelName[i]);

   return;
}

void BigComment(string cmt)
{
   BigStringSplit(cmt);
   if( BigCheckLabel() )
      for( int i=0; i<BigLineCount; i++)
         ObjectSetText( BigLabelName[i], BigLabelText[i], BigFontSize, BigFontName, BigFontColor);
}

int BigStringSplit(string cmt, string by=NL)
{
   string tmp;
   string line;
   int start;
   int next;
   BigLineCount=0;   

   if( cmt=="" ) return( BigLineCount );

   int byLen = StringLen(by);
   start = StringLen(cmt) - byLen;
   BigDebugPrint(1, "BigStringSplit",
      BigDebugInt("byLen", byLen) + 
      BigDebugInt("start", start) +
      BigDebugInt("StringFind", StringFind( cmt, by, start)) );
   if( StringFind( cmt, by, start ) == -1 )
      tmp = StringConcatenate( cmt, by );
   else
      tmp = cmt;

   while( StringLen(tmp) > 0 )
   {
      line = "";
      next = StringFind( tmp, by, 0 );
      if( next > 0 ) line = StringSubstr( tmp, 0, next );

      BigLineCount++;
      ArrayResize(BigLabelText, BigLineCount);
      BigLabelText[BigLineCount-1] = line;

      tmp = StringSubstr( tmp, next + byLen );
   }

   for( int i=0; i<BigLineCount; i++)
      BigDebugPrint(1, "Bi

Показано первые 50% кода (символов: 3228)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
322,80₽ ≈ $3.95