ValuesFunctionFormat (Metodo Get)

Ottieni il puntatore alla funzione che definisce il formato di visualizzazione dei valori sull'asse.

DoubleToStringFunction  ValuesFunctionFormat()

Return Value

Puntatore alla funzione che definisce il formato di visualizzazione dei valori sull'asse.

ValuesFunctionFormat (Metodo Set)

Impostare il puntatore alla funzione che definisce il formato di visualizzazione dei valori sull'asse.

void  ValuesFunctionFormat(
   DoubleToStringFunction  func      // funzione per convertire valori numerici in stringhe 
   )

Parametri

func

[in] Funzione personalizzata per la conversione di valori numerici in una stringa.

Esempio:

graphics_close

Il formato di visualizzazione dei valori dell'asse X è stato modificato utilizzando il seguente codice:

//+------------------------------------------------------------------+
//|                                              DateAxisGraphic.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#include <Graphics\Graphic.mqh>
//--- array per memorizzare i valori
double arrX[];
double arrY[];
//+------------------------------------------------------------------+
//| Funzione Custom per creare i valori sull' asse X                      |
//+------------------------------------------------------------------+
string TimeFormat(double x,void *cbdata)
  {
   return(TimeToString((datetime)arrX[ArraySize(arrX)-(int)x-1]));
  }
//+------------------------------------------------------------------+
void OnStart()
  {
   MqlRates rates[];
   CopyRates(Symbol(),Period(),0,100,rates);
   ArraySetAsSeries(rates,true);
   int size=ArraySize(rates);
   ArrayResize(arrX,size);
   ArrayResize(arrY,size);
   for(int i=0; i<size;++i)
     {
      arrX[i]=(double)rates[i].time;
      arrY[i]=rates[i].close;
     }
//--- crea grafica
   CGraphic graphic;
   if(!graphic.Create(0,"DateAxisGraphic",0,30,30,780,380))
     {
      graphic.Attach(0,"DateAxisGraphic");
     }
//--- crea curva 
   CCurve *curve=graphic.CurveAdd(arrY,CURVE_LINES);
//--- ottiene l'asse delle X
   CAxis *xAxis=graphic.XAxis();
//--- imposta proprietà asse delle X
   xAxis.AutoScale(false);
   xAxis.Type(AXIS_TYPE_CUSTOM);
   xAxis.ValuesFunctionFormat(TimeFormat);
   xAxis.DefaultStep(20.0);
//--- disegna 
   graphic.CurvePlotAll();
   graphic.Update();
  }