Как повернуть каждую букву в OBJ_TEXT на 90 градусов?

 

Имеем некий объект OBJ_TEXT, или любой другой, в который можно вписать текст и привязать к графику по времени и цене.

Сейчас выглядит как в примере зеленого цвета. Хотелось бы сделать как в примере красного цвета, развернуть не весь текст на 90 градусов, а сами буквы.

Буду рад любым предложениям.

Спасибо 


 

Вам нужно написать функцию, 

например пишите входящую переменную "FOREX"

и далее в функции уже каждую букву написать выше другой.  

 

Вы предлагаете для каждой буквы создавать отдельный объект?

Не будет ли такое количество объектов затормаживать систему?

Может существует какой нибудь шрифт повернутый на 90 градусов? По типу Italic

 
Dimitr Trifonov:

Не будет ли такое количество объектов затормаживать систему?

По моему опыту до 10000 обьектов обрабатываются с приемлемой скоростью.

со 100000 могут быть проблемы :)

 

Если нужен наклон текста, лучше рисовать через создание графического ресурса. Графический ресурс связывать с CBmpButton. Поворот текста задавать через TextSetFont и вывод текста  делать через TextOut.

 

Спасибо всем за ответы.

Написал функцию, вводится текст, за тем из каждой буквы делается объект, каждый объект на неком расстоянии под предыдущим.

На мое удивление система работает быстро.

Думаю на этом вопрос закрыт :) 

 
Dimitr Trifonov:

Спасибо всем за ответы.

Написал функцию, вводится текст, за тем из каждой буквы делается объект, каждый объект на неком расстоянии под предыдущим.

На мое удивление система работает быстро.

Думаю на этом вопрос закрыт :) 

Ну так покажите решение, может еще кому-то понадобиться, скажут спасибо )
 
void CreateVerticalTextDemo(string objectName,datetime objectTime,string objectText){
   
   for(int cnt=0;cnt<StringLen(objectText);cnt++){//every character becomes a separate object
    
      string character=StringSubstr(objectText,cnt,1);//get specified character from te text
      objectName=objectName+"_"+IntegerToString(cnt);//position of the character is number of the object
      
      int shift=StringLen(objectText)-cnt+1;//the shift shows the position of the character on chart, depends on character amount
      //the last character on the bottom of chart

      double characterSize=ChartGetDouble(ChartID(),CHART_PRICE_MAX)-ChartGetDouble(ChartID(),CHART_PRICE_MIN);
      characterSize/=StringLen(objectText);//calcuate the size of the object (character)
      double position=shift*characterSize;//calcuate the position
      position=ChartGetDouble(ChartID(),CHART_PRICE_MIN)+position;

      ObjectCreate(ChartID(),objectName,OBJ_TEXT,0,objectTime,position);//create the object on the chart
      ObjectSetString(ChartID(),objectName,OBJPROP_TEXT,character);//set text
      ObjectSetInteger(ChartID(),objectName,OBJPROP_COLOR,clrRed);//set color
      }
   }   

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