OBJPROP_TEXT dificulty

 

Hi everyone,

I want my scrip comments to show on a black background to better read when they are on top of a candle.

I created a rectangle with OBJPROP_BACK = false. If I set background =  true graphic candles will be on top of it and it will lose its intention.

I then add the comments on top of the rectangle as objects.

Here’s my code:

void OnStart()
  {
   string comtext;
   string comtext1="===========================";  
   string comtext2="    Info to by displayed";
   string comtext3="    Some other Info";
   string comtext4="===========================";
   for(int i=1; i<=4; i++)
   {
   ObjectCreate(0,"ComPers"+i, OBJ_LABEL, 0, 0, 0 );
   ObjectSetInteger(0,"ComPers"+i,OBJPROP_XDISTANCE,5);
   ObjectSetInteger(0,"ComPers"+i,OBJPROP_YDISTANCE, i * 15);  
   ObjectSetString(0,"ComPers"+i,OBJPROP_TEXT,comtext+i);
   ObjectSetInteger(0,"ComPers"+i,OBJPROP_COLOR,clrBlack);
   Print(comtext+i);
   {
   {

My problem is that it displays the line numbers (1; 2; 3; 4) and not comtext1, comtext2, etc content.

I guess the problem is in ObjectSetString(0,"ComPers"+i,OBJPROP_TEXT,comtext+i) more precisely with the comtext+i

I just don’t know how to make it correct.

Any help is most appreciated.

 
AquilaRal:

Hi everyone,

I want my scrip comments to show on a black background to better read when they are on top of a candle.

I created a rectangle with OBJPROP_BACK = false. If I set background =  true graphic candles will be on top of it and it will lose its intention.

I then add the comments on top of the rectangle as objects.

Here’s my code:

My problem is that it displays the line numbers (1; 2; 3; 4) and not comtext1, comtext2, etc content.

I guess the problem is in ObjectSetString(0,"ComPers"+i,OBJPROP_TEXT,comtext+i) more precisely with the comtext+i

I just don’t know how to make it correct.

Any help is most appreciated.

Forum em portugues, mas tenta isso:


  {
   string comtext[] = {
                   "",
                   "===========================",
                   "    Info to by displayed",
                   "    Some other Info",
                   "===========================",
                   ""};
   for(int i=1; i<=4; i++)
   {
   ObjectCreate(0,"ComPers"+i, OBJ_LABEL, 0, 0, 0 );
   ObjectSetInteger(0,"ComPers"+i,OBJPROP_XDISTANCE,5);
   ObjectSetInteger(0,"ComPers"+i,OBJPROP_YDISTANCE, i * 15);  
   ObjectSetString(0,"ComPers"+i,OBJPROP_TEXT,comtext[i]);
   ObjectSetInteger(0,"ComPers"+i,OBJPROP_COLOR,clrBlack);
   Print(comtext[i]);
   {
 
Ricardo Rodrigues Lucca #:
Forum em portugues, mas tenta isso:


Muito obrigado.

Resultou como pretendido.

 

Outra questão:

É possível saber o numero de linhas de comtext[]?

Para que o numero de iterações ( i>=4) seja dinâmico e igual ao numero de linhas de comtext[].

 
AquilaRal #Outra questão: É possível saber o numero de linhas de comtext[]? Para que o numero de iterações ( i>=4) seja dinâmico e igual ao numero de linhas de comtext[].

Bom dia!!

for(int i = 1; i < ArraySize(comtext) - 1; i ++)
 
AquilaRal #:

Outra questão:

É possível saber o numero de linhas de comtext[]?

Para que o numero de iterações ( i>=4) seja dinâmico e igual ao numero de linhas de comtext[].

Se voce for fazer tipo um "terminal", eu não sei se seria melhor ser dinamico e ir "puxando" as mais antigas pra cima ou deixar pre-calculado a quantidade de labels e ir "movendo" o texto a cada nova linha...
 
Vinicius Pereira De Oliveira #:

Bom dia!!

Muito obrigado.

Funcionou na perfeição

 
Ricardo Rodrigues Lucca #:
Se voce for fazer tipo um "terminal", eu não sei se seria melhor ser dinamico e ir "puxando" as mais antigas pra cima ou deixar pre-calculado a quantidade de labels e ir "movendo" o texto a cada nova linha...

Obrigado pela sugestão.

Ainda sou muito novato para conseguir fazer algo mais complexo.