Errori, bug, domande - pagina 1455

 

Ecco il copione.

Creato un oggetto. Testo assegnato.

Riconosco il testo stesso e le dimensioni.

Perché il testo stesso viene riconosciuto, ma la dimensione no?

File:
prob.mq4  1 kb
 
Vasyl Nosal:

Ecco il copione.

Creato un oggetto. Testo assegnato.

Riconoscere il testo stesso e le dimensioni.

Perché riconosce il testo ma non la dimensione?

Ho appena controllato.

Anche il colore torna corretto.

Perché non è la dimensione? È una specie di tabù?

File:
prob.mq4  1 kb
 
Vasyl Nosal:

Ho appena controllato.

Anche il colore ritorna correttamente.

Perché le dimensioni non lo sono? È una specie di tabù?

Finché l'etichetta di testo non è resa, la dimensione è sconosciuta. Cosa non è chiaro qui?
 
Vasyl Nosal:

Ho appena controllato.

Anche il colore ritorna correttamente.

Perché le dimensioni non lo sono? È una specie di tabù?

Perché l'oggetto non ha tempo per renderizzare, si vuole troppo...

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);

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

Browser Opera

Opera 34.0

Fare di più sul web

Informazioni sulla versione

Versione:34.0.2036.25- Viene utilizzata la versione aggiornata di Opera
Aggiornare il canale:Stabile
Sistema:Windows 10 a 64 bit (WoW64)

ID del browser

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

Quando si inserisce un nuovo messaggio usando SRC, il testo SRC scompare.

Quando si aggiorna usando/inserendo SRC va bene.

 
Vladimir Pastushak:

perché l'oggetto non ha il tempo di renderizzare, vuoi troppo...

Questo è forte.

Ora per favore aiutatemi ad implementare questo in un indicatore e a farlo funzionare senza tick (nei fine settimana).

 
Slawa:
Finché l'etichetta di testo non è resa, la dimensione è sconosciuta. Cosa non è chiaro qui?

Avete una soluzione a questo problema in un indicatore, senza tick?

E l'ho già detto prima. È strano che si possa ottenere il testo stesso senza rendering ma non la dimensione.

 
Vasyl Nosal:

Questo è forte.

Ora per favore aiutatemi ad implementarlo nell'indicatore e a farlo funzionare senza tick (nei fine settimana).

---

//+------------------------------------------------------------------+
//|                                                        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:

---

Grazie. Ma è ingombrante conoscere la dimensione del testo, per dirla tutta.

Perché è possibile scoprire la dimensione del testo senza rendering ma non la dimensione del testo?

 
Vasyl Nosal:

Grazie. Ma è ingombrante conoscere le dimensioni del testo, per dirla tutta.

Perché possiamo conoscere il testo stesso senza rendering ma non la sua dimensione?

Forse il testo da rendere è memorizzato in una variabile da cui lo recuperiamo e bisogna creare un oggetto di migliaia di pixel per creare il testo.

E il codice che ti ho dato è solo un esempio di implementazione runtime.