Erros, bugs, perguntas - página 1455

 

Aqui está o guião.

Criou um objecto. Texto atribuído.

O reconhecimento do texto em si e do tamanho.

Porque é que o texto em si é reconhecido, mas o tamanho não é?

Arquivos anexados:
prob.mq4  1 kb
 
Vasyl Nosal:

Aqui está o guião.

Criou um objecto. Texto atribuído.

O reconhecimento do texto em si e do tamanho.

Porque é que reconhece o texto mas não o tamanho?

Acabei de verificar.

Até a cor regressa correctamente.

Porque é que o tamanho não é? Isto é algum tipo de tabu?

Arquivos anexados:
prob.mq4  1 kb
 
Vasyl Nosal:

Acabei de verificar.

Até a cor regressa correctamente.

Porque é que o tamanho não é? Isto é algum tipo de tabu?

Até a etiqueta de texto ser entregue, o tamanho é desconhecido. O que não está claro aqui?
 
Vasyl Nosal:

Acabei de verificar.

Até a cor regressa correctamente.

Porque é que o tamanho não é? Isso é algum tipo de tabu?

Porque o objecto não tem tempo para renderizar, quer 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 de ópera

Ópera 34.0

Fazer mais na web

Informação sobre a versão

Versão:34.0.2036.25- É utilizada a versão actualizada de Ópera
Canal de Actualização:Estável
Sistema:Windows 10 de 64 bits (WoW64)

ID do 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

Ao inserir uma nova mensagem usando SRC, o texto SRC desaparece.

Ao actualizar utilizando/inserindo SRC está bem.

 
Vladimir Pastushak:

porque o objecto não tem tempo para renderizar, quer demasiado...

Isso é fixe.

Agora, por favor ajudem-me a implementar isto num indicador e façam-no funcionar sem carraças (nos fins-de-semana).

 
Slawa:
Desde que a etiqueta de texto não seja apresentada, o tamanho é desconhecido. O que é que não está claro aqui?

Tem uma solução para este problema num indicador, sem carraças?

E eu já o disse antes. É estranho que se consiga obter o texto em si sem renderizar mas não o tamanho.

 
Vasyl Nosal:

Isso é fixe.

Agora, por favor ajudem-me a implementá-lo num indicador e façam-no funcionar sem carraças (aos fins-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:

---

Obrigado. Mas é incómodo saber o tamanho do texto, para o dizer de forma suave.

Porque é que é possível descobrir o tamanho do texto sem renderizar mas não o tamanho do texto?

 
Vasyl Nosal:

Obrigado. Mas é incómodo saber o tamanho do texto, para o dizer de forma suave.

Por que podemos conhecer o texto em si sem o renderizar, mas não o seu tamanho?

Talvez o texto a ser entregue seja armazenado numa variável da qual o recuperamos e é necessário criar um objecto de milhares de pixels para criar o texto.

E o código que vos dei é apenas um exemplo de uma implementação em tempo de execução.