Errores, fallos, preguntas - página 1455

 

Este es el guión.

Se ha creado un objeto. Texto asignado.

Reconozco el texto en sí y el tamaño.

¿Por qué se reconoce el texto en sí, pero no el tamaño?

Archivos adjuntos:
prob.mq4  1 kb
 
Vasyl Nosal:

Este es el guión.

Se ha creado un objeto. Texto asignado.

Reconocer el propio texto y el tamaño.

¿Por qué reconoce el texto pero no el tamaño?

Acabo de comprobarlo.

Incluso el color vuelve correctamente.

¿Por qué no es el tamaño? ¿Es algún tipo de tabú?

Archivos adjuntos:
prob.mq4  1 kb
 
Vasyl Nosal:

Acabo de comprobarlo.

Incluso el color vuelve correctamente.

¿Por qué no es el tamaño? ¿Es algún tipo de tabú?

Hasta que la etiqueta de texto no se renderiza, el tamaño es desconocido. ¿Qué no está claro aquí?
 
Vasyl Nosal:

Acabo de comprobarlo.

Incluso el color vuelve correctamente.

¿Por qué no es el tamaño? ¿Es algún tipo de tabú?

Debido a que el objeto no tiene tiempo para renderizar, se quiere demasiado...

string name="probe";
/////
void OnStart()
  {
   func();
   func();

   ObjectDelete(name);

  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void func()
  {
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   ObjectSetString(0,name,OBJPROP_TEXT,name);

   Sleep(500);

   string text=ObjectGetString(0,name,OBJPROP_TEXT);

   int text_sizeX=int(ObjectGetInteger(0,name,OBJPROP_XSIZE));
   Alert(text," ",text_sizeX);

  }
//+------------------------------------------------------------------+
 

Navegador Opera

Opera 34.0

Hacer más en la web

Información sobre la versión

Versión:34.0.2036.25- Se utiliza la versión actualizada de Opera
Canal de actualización:Estable
Sistema:Windows 10 64 bits (WoW64)

ID del navegador

Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/47.0.2526.73 Safari/537.36 OPR/34.0.2036.25

Al insertar un nuevo mensaje utilizando el SRC, el texto del SRC desaparece.

Cuando se actualiza usando/insertando SRC está bien.

 
Vladimir Pastushak:

porque el objeto no tiene tiempo de renderizar, quieres demasiado...

Eso es genial.

Ahora por favor ayúdenme a implementar esto en un indicador y hacer que funcione sin ticks (los fines de semana).

 
Slawa:
Mientras la etiqueta de texto no se renderice, el tamaño es desconocido. ¿Qué es lo que no está claro aquí?

¿Tienes una solución para este problema en un indicador, sin ticks?

Y ya lo he dicho antes. Es extraño que se pueda obtener el texto en sí sin renderizar pero no el tamaño.

 
Vasyl Nosal:

Eso es genial.

Ahora por favor ayúdenme a implementarlo en el indicador y hacer que funcione sin ticks (los fines de semana).

---

//+------------------------------------------------------------------+
//|                                                        proba.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window

string name="probe";
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   EventSetTimer(1 /*переодичность в секундах*/); // 
                                                  // или
//bool  EventSetMillisecondTimer( 
//int  milliseconds      // количество миллисекунд 
//);
   ObjectCreate(0,name,OBJ_LABEL,0,0,0);
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer()
  {
   ObjectSetString(0,name,OBJPROP_TEXT,name);
   string text=ObjectGetString(0,name,OBJPROP_TEXT);
   int text_sizeX=int(ObjectGetInteger(0,name,OBJPROP_XSIZE));
   Alert(text," ",text_sizeX);
  }
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ObjectDelete(name);
   EventKillTimer();
  }
//+------------------------------------------------------------------+
 
Vladimir Pastushak:

---

Gracias. Pero es engorroso saber el tamaño del texto, por decirlo suavemente.

¿Por qué es posible averiguar el tamaño del texto sin renderizar pero no el tamaño del texto?

 
Vasyl Nosal:

Gracias. Pero es engorroso saber el tamaño del texto, por decirlo suavemente.

¿Por qué podemos conocer el texto sin renderizarlo pero no su tamaño?

Tal vez el texto a renderizar esté almacenado en una variable de la que lo recuperamos y haya que crear un objeto de miles de píxeles para crear el texto.

Y el código que te he dado es sólo un ejemplo de implementación en tiempo de ejecución.