ChartSetInteger

Imposta un valore per la corrispondente proprietà del chart specificato. La proprietà del chart dev'essere datetime, int, color, bool or char. Il comando viene aggiunto alla coda dei messaggi del chart e verrà eseguito dopo l'elaborazione di tutti i comandi precedenti.

bool  ChartSetInteger(
   long                          chart_id,     // ID del Chart
   ENUM_CHART_PROPERTY_DOUBLE    prop_id,      // ID della Proprietà
   long                          value         // Valore
   );

 

bool  ChartSetInteger(
   long                          chart_id,     // ID del Chart
   ENUM_CHART_PROPERTY_DOUBLE    prop_id,      // ID della Proprietà
   int                           sub_window,   // Numero della Sottofinestra
   long                          value         // Valore
   );

Parametri

chart_id

[in] ID del Chart. 0 significa il chart corrente.

prop_id

[in]  ID proprietà del Chart. Può essere uno dei valori ENUM_CHART_PROPERTY_INTEGER (tranne le proprietà di sola-lettura).

sub_window

[in] Numero di sottofinestra chart. Per il primo caso, il valore di default è 0 (finestra chart principale). La maggior parte delle proprietà non richiedono un numero sottofinestra.

valore

[in]  Valore proprietà.

Valore restituito

Restituisce true se il comando è stato aggiunto alla coda del chart, altrimenti false. Per avere informazioni sull' errore, chiamare la funzione GetLastError().

Note

La funzione è asincrona, il che significa che la funzione non attende l'esecuzione del comando, che è stato correttamente aggiunto alla coda di specifica del chart. Invece, restituisce immediatamente il controllo. La proprietà cambierà solo dopo la gestione del comando appropriato dalla coda del chart. Per eseguire immediatamente i comandi dalla coda del chart, chiamare la funzione ChartRedraw.

Se si desidera modificare immediatamente più proprietà del chart contemporaneamente, allora le funzioni corrispondenti (ChartSetString, ChartSetDouble, ChartSetString) devono essere eseguite in un blocco di codice, dopo il quale è necessario chiamare ChartRedraw una volta.

Per verificare il risultato dell'esecuzione del comando, è possibile utilizzare una funzione che richiede la proprietà del chart specificata (ChartGetInteger, ChartGetDouble, ChartSetString). Tuttavia, notare che queste funzioni sono sincrone e attendere i risultati dell'esecuzione.

Esempio:

//+------------------------------------------------------------------+
//| Funzione inizializzazione Expert                                 |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- Abilitazione degli eventi dei movimenti del mouse sulla finestra del chart
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- L'aggiornamento forzato delle proprietà del chart garantisce la preparazione per l'elaborazione degli eventi
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| MouseState                                                       |
//+------------------------------------------------------------------+
string MouseState(uint state)
  {
   string res;
   res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // mouse sinstra
   res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // mouse deastra 
   res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // mouse centrale
   res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // mouse primo tasto X
   res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // mouse secondo tasto X
   res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // tasto shift
   res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP");   // tasto control
   return(res);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
   if(id==CHARTEVENT_MOUSE_MOVE)
      Comment("POINT: ",(int)lparam,",",(int)dparam,"\n",MouseState((uint)sparam));
  }