ChartSetInteger

Define um valor para a propriedade de correspondência de um gráfico especificado. Propriedade do gráfico deve obrigatoriamente ser datetime, int, color, bool ou char. O comando é adicionado para plotar uma fila de mensagens de gráfico e será executado após o processamento de todos os comandos anteriores.

bool  ChartSetInteger(
   long   chart_id,     // ID Gráfico
   int    prop_id,      // ID Propriedade
   long   value         // Valor
   );

Define o valor para a respectiva propriedade da subjanela especificada

bool  ChartSetInteger(
   long   chart_id,     // ID Gráfico
   int    prop_id,      // ID Propriedade
   int   sub_window,    // Número da sub-janela
   long   value         // Valor
   );

Parâmetros

chart_id

[in]  ID Gráfico. Significa o gráfico atual.

prop_id

[in]  ID Propriedade do gráfico. Pode ser um valores de ENUM_CHART_PROPERTY_INTEGER (exceto apenas a leitura das propriedades).

sub_window

[in]  Número de sub-janela do gráfico. Para o primeiro caso, o valor padrão é 0 (janela do gráfico principal). A maioria das propriedades não requerem uma número de sub-janela.

value

[in]  Valor de propriedade.

Valor do Retorno

Retorna verdadeiro se o comando foi adicionado à fila do gráfico, caso contrário será falso. Para obter uma informação sobre o erro, chamar a função GetLastError().

Observação

A função é assíncrona, isto é, ela não espera a execução do comando que foi colocado com sucesso na fila do gráfico especificado, em vez disso, ela retorna o controle imediatamente. A propriedade será alterada somente após o processamento do comando na fila do gráfico. Para executar imediatamente comandos na fila de agendamento, você precisa chamar a função ChartRedraw.

Se quiser alterar várias propriedades gráficas de uma só vez, você deverá executar as funções correspondentes (ChartSetString, ChartSetDouble, ChartSetString) num bloco de código e, em seguida, chamar uma vez ChartRedraw.

Para verificar o resultado da execução, você pode usar a função que solicita a propriedade especificada do gráfico (ChartGetInteger, ChartGetDouble, ChartSetString). Ao fazer isto, deve-se ter em mente que essas funções são síncronas e esperam o resultado da execução.

Exemplo:

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- incluir mensagens sobre o movimento do mouse na janela do gráfico
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- a atualização forçada das propriedades do gráfico garante a prontidão para o processamento de eventos
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| MouseState                                                       |
//+------------------------------------------------------------------+
string MouseState(uint state)
  {
   string res;
   res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // mouse left
   res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // mouse right 
   res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // mouse middle
   res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // mouse first X key
   res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // mouse second X key
   res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // shift key
   res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP");   // control key
   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));
  }