Без канваса прозрачность не сделать. Никого не слушайте. А вообще, если есть возможность избежать прозрачность - избегайте. Меньше будет ненужного кода, который нужно обслуживать.
Таким образом цвета вообще не будет. Я имею ввиду текст как фон на заднем плане графика.
Если на заднем плане, то прозрачность не нужна. Прозрачность нужна, если перед графиком. В этом случае можете воспользоваться моей библой, с которой проще работать, чем с объектами. Вот пример простого скрипта:
#include <Canvas\iCanvas_CB.mqh> //https://www.mql5.com/ru/code/22164#resource "\\Files\\Abram Font4You.ttf"string myFont="::Files\\Abram Font4You.ttf";
//+------------------------------------------------------------------+//| |//+------------------------------------------------------------------+voidOnStart()
{
// Значения по умолчанию:// "Courier New" - начальный шрифт с размером 18 // Canvas.TextPosX=20; - начальная координата X// Canvas.TextPosY=100; - начальная координата Y// Canvas.TextColor=clrDarkOrchid; - цвет текста с прозрачностью 1.0 (полностью непрозрачный)// Canvas.StepTextLine = 20; - шаг между строкамиulong t = GetMicrosecondCount();
Canvas.Erase(0x00FFFFFF); // 0x00FFFFFF это важно. Не 0. Иначе шрифты будут не четкими на небелом фоне
Canvas.Comm("В синем небе звезды блещут,");
Canvas.Comm("В синем море волны хлещут;");
Canvas.Comm("Туча по небу идет,");
Canvas.Comm("Бочка по морю плывет.");
Canvas.TextPosition(100,500); // Позиция X и Y. Если целое число то значение в пикселях. Если double, то в процентах от ширины и высоты
Canvas.CurentFont("Arial",25,30,clrRed,0.3); // 25 - размер, 30 - расстояние между строками, 0.3 - прозрачность
Canvas.Comm("Словно горькая вдовица,");
Canvas.Comm("Плачет, бьется в ней царица;");
Canvas.Comm("И растет ребенок там");
Canvas.Comm("Не по дням, а по часам.");
Canvas.TextPosition(50.0,20.0); // Позиция X и Y в процентах от ширины и высоты (тип dounle)
Canvas.CurentFont(myFont,50,30,0xFFFF00FF,0.9); // 50 - размер, 30 - расстояние между строками, прозрачность - 0.9
Canvas.Comm("День прошел, царица вопит...");
Canvas.Comm("А дитя волну торопит:");
Canvas.Comm("«Ты, волна моя, волна!");
Canvas.Comm("Ты гульлива и вольна;");
Canvas.TextPosY+=20; // увеличиваем Y координату на 20 пикселей
Canvas.Comm("Плещешь ты, куда захочешь,");
Canvas.TextPosX+=20; // увеличиваем X координату на 20 пикселей
Canvas.Comm("Ты морские камни точишь,");
Canvas.TextPosX+=20; // увеличиваем X координату на 20 пикселей
Canvas.Comm("Топишь берег ты земли,");
Canvas.TextPosX+=20; // увеличиваем X координату на 20 пикселей
Canvas.Comm("Подымаешь корабли —");
Canvas.StepTextLine+=30; // увеличиваем шаг между строками на 30 пикселей
Canvas.Comm("Не губи ты нашу душу:");
Canvas.Comm("Выплесни ты нас на сушу!»");
Canvas.Update();
t=GetMicrosecondCount()-t;
Print("Время формирования и вывода текста - " +DoubleToString(t/1000.0, 2) + " миллисекунд");
Sleep(20000);
}
//+------------------------------------------------------------------+
Текст можно привязывать к барам ( функции Canvas.X(double bar) ), цене (Canvas.Y(double Price)) и времени ( Canvas.X(datetime Time)), к координатам окна в пикселях(TextPosition(int x,int y)) или процентах(TextPosition(double x,double y)). Лучше вынести весь вывод текста или графики в отдельную функцию и перерисовывать каждый раз при наступлении нужного события.
Если на заднем плане, то прозрачность не нужна. Прозрачность нужна, если перед графиком. В этом случае можете воспользоваться моей библой, с которой проще работать, чем с объектами. Вот пример простого скрипта:
Текст можно привязывать к барам ( функции Canvas.X(double bar) ), цене (Canvas.Y(double Price)) и времени ( Canvas.X(datetime Time)), к координатам окна в пикселях(TextPosition(int x,int y)) или процентах(TextPosition(double x,double y)). Лучше вынести весь вывод текста или графики в отдельную функцию и перерисовывать каждый раз при наступлении нужного события.
Пробовал так, получается на заднем плане, но прозрачности нет.
Без канваса прозрачность не сделать. Никого не слушайте. А вообще, если есть возможность избежать прозрачность - избегайте. Меньше будет ненужного кода, который нужно обслуживать.
Кто разбирается в канвасе, поправьте пожалуйста на текстовой вызов
Это от не знания mql, сразу в крайности - канвас, питон и пр...
В торговле графика нужна только текстовая и тренды. Эмкуэля за глаза
Renat Akhtyamov #:
Тогда канвас
да, похоже вы не знаете "Эмкуэля".
подучились бы сначала)
да, похоже вы не знаете "Эмкуэля".
подучились бы сначала)
Я часто смотрю с какой стороны ветер дует.
да я тоже смотрю - посоветовать что-то невозможное в МТ это для вас нормально, а потом конечно ветер меняется)
Таким образом цвета вообще не будет.
Я имею ввиду текст как фон на заднем плане графика.
Если на заднем плане, то прозрачность не нужна.
Прозрачность нужна, если перед графиком.
В этом случае можете воспользоваться моей библой, с которой проще работать, чем с объектами.
Вот пример простого скрипта:
Текст можно привязывать к барам ( функции Canvas.X(double bar) ), цене (Canvas.Y(double Price)) и времени ( Canvas.X(datetime Time)), к координатам окна в пикселях(TextPosition(int x,int y)) или процентах(TextPosition(double x,double y)).
Лучше вынести весь вывод текста или графики в отдельную функцию и перерисовывать каждый раз при наступлении нужного события.
ЗЫ есть версия MT4. Код тот же самый будет.
Если на заднем плане, то прозрачность не нужна.
Прозрачность нужна, если перед графиком.
В этом случае можете воспользоваться моей библой, с которой проще работать, чем с объектами.
Вот пример простого скрипта:
Текст можно привязывать к барам ( функции Canvas.X(double bar) ), цене (Canvas.Y(double Price)) и времени ( Canvas.X(datetime Time)), к координатам окна в пикселях(TextPosition(int x,int y)) или процентах(TextPosition(double x,double y)).
Лучше вынести весь вывод текста или графики в отдельную функцию и перерисовывать каждый раз при наступлении нужного события.
ЗЫ есть версия MT4. Код тот же самый будет.
А где полупрозрачная подложка под текст, чтобы было читабельно? :)
А где полупрозрачная подложка под текст, чтобы было читабельно? :)
Так делов-то - одна строка кода после Canvas.Erase - нарисовать прямоугольник с нужным цвет и прозрачностью.
например так:
Так делов-то - одна строка кода после Canvas.Erase - нарисовать прямоугольник с нужным цвет и прозрачностью.
например так:
ну и осталось только написать черным, чтобы окончательно убедиться в том, что прозрачность не нужна