Прозрачный текст

 

Подскажите как сделать прозрачный текст на графике
В поиске нет ответов

void ObjectText(string txt, int size, int corn, int xd, int yd, color clr)
{
       string name=Prefix;
 ObjectCreate(name,OBJ_LABEL,0, 0,0);
    ObjectSet(name,OBJPROP_CORNER, corn);
    ObjectSet(name,OBJPROP_XDISTANCE,xd);
    ObjectSet(name,OBJPROP_YDISTANCE,yd);
ObjectSetText(name,txt,size,"Arial",clr);
ChartRedraw(0);}
 
forex2030:

Подскажите как сделать прозрачный текст на графике
В поиске нет ответов

Цвет clrNONE
 
Renat Akhtyamov #:
Цвет clrNONE

Таким образом цвета вообще не будет.
Я имею ввиду текст как фон на заднем плане графика.

 
forex2030 #:

Таким образом цвета вообще не будет.
Я имею ввиду текст как фон на заднем плане графика.

 OBJPROPподчеркиааниеBACK почитайте
 
forex2030:

Подскажите как сделать прозрачный текст на графике
В поиске нет ответов

ищите "canvas"

 
Taras Slobodyanik #:

ищите "canvas"

Это от не знания  mql, сразу в крайности - канвас, питон и пр...
В торговле графика нужна только текстовая и тренды. Эмкуэля за глаза
 

Нашёл то что требуется, но по канвасу я ноль
Как в CreateLabel переделать? Чтобы текст был.


#property indicator_chart_window
#define protected public  
#include <Canvas\Canvas.mqh> 
#undef protected
CCanvas C;
//+------------------------------------------------------------------+
int OnInit()
  {
   if(!C.CreateBitmapLabel(0,0,"_Canvas",100,100,600,400,COLOR_FORMAT_ARGB_NORMALIZE))
      Print("Error creating canvas: ",GetLastError());
   DrawCanvas(600,400);
   
return(INIT_SUCCEEDED);}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   C.Destroy();}
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,       
                 const int prev_calculated,   
                 const int begin,             
                 const double& price[])       
  {
return prev_calculated;}
//+------------------------------------------------------------------+
void DrawCanvas(int x, int y)
{
 static bool first=true;
 ObjectSetInteger(C.m_chart_id,C.m_objname,OBJPROP_XDISTANCE,x/5);
 ObjectSetInteger(C.m_chart_id,C.m_objname,OBJPROP_YDISTANCE,y/5);
 ObjectSetInteger(C.m_chart_id,C.m_objname,OBJPROP_XSIZE,x);
 ObjectSetInteger(C.m_chart_id,C.m_objname,OBJPROP_YSIZE,y);  
 if(first) 
   {
   C.Erase();
   C.FillCircle(300, //Сдвиг горизонталь
                200, //Сдвиг вертикаль
                100, //Размер
                ColorToARGB(clrGold,35)); //Прозрачность
   C.Update(); 
   first=false;
   }
ChartRedraw();}
//+------------------------------------------------------------------+
 
forex2030 #:

Нашёл то что требуется, но по конвасу я ноль
Как в CreateLabel переделать? Чтобы текст был.


Вот тут информации вагон  и маленька тележка…

Canvas - это круто!
Canvas - это круто!
  • 2018.02.16
  • www.mql5.com
Поставил себе задачу: коротким кодом эффектно продемонстрировать возможности пользовательской графики через класс CCanvas...
 
forex2030 #:

Нашёл то что требуется, но по конвасу я ноль
Как в CreateLabel переделать? Чтобы текст был.


В дебри полезли. Я же написал как.
 
Renat Akhtyamov #:
В дебри полезли. Я же написал как.

Пробовал так, получается на заднем плане, но прозрачности нет.

void ObjectText(string txt, int size, int corn, int xd, int yd)
{
         string name="Текст";
   ObjectCreate(name,OBJ_LABEL, 0, 0, 0);
      ObjectSet(name,OBJPROP_CORNER, corn);
      ObjectSet(name,OBJPROP_XDISTANCE,xd);
      ObjectSet(name,OBJPROP_YDISTANCE,yd);
      ObjectSet(name,OBJPROP_BACK,true);
  ObjectSetText(name,txt,size,"Arial",clrNONE);
ChartRedraw(0);}
 
forex2030 #:

Пробовал так, получается на заднем плане, но прозрачности нет.

Без канваса прозрачность не сделать. Никого не слушайте. А вообще, если есть возможность избежать прозрачность - избегайте. Меньше будет ненужного кода, который нужно обслуживать.