GetInteger

Sınıf örneğine atanmış tamsayı (bool, char, uchar, short, ushort, int, uint, long, ulong, datetime veya color tipli) grafik özelliği değerlerinin alınabilmesi için, MQL5 API ObjectGetInteger() fonksiyonlarına kolay erişim sağlar. Fonksiyonun iki çağrı çeşidi vardır:

Doğruluk kontrolü yapılmadan özellik değerinin alınması

long  GetInteger(
   ENUM_OBJECT_PROPERTY_INTEGER  prop_id,         // tamsayı özelliğin tanımlayıcısı
   int                           modifier=-1      // değiştirici 
   ) const

Parametreler

prop_id

[in]  Tamsayı grafik özelliğinin tanımlayıcısı.

modifier=-1

[in]  Tamsayı özelliğin değiştiricisi (indisi).

Dönüş Değeri

Başarı durumunda tamsayı tipli özelliğin değerine, aksi durumda 0 değerine dönüş yapar.

Sonuç doğrulama yöntemini kullanarak özellik değerinin alınması

bool  GetInteger(
   ENUM_OBJECT_PROPERTY_INTEGER  prop_id,      // tamsayı özelliğin tanımlayıcısı
   int                           modifier,     // değiştirici 
   long&                         value         // çıkış değeri referansı
   ) const

Parametreler

prop_id

[in]  Tamsayı değerli grafik nesnesi özelliğinin tanımlayıcısı.

modifier

[in]  Tamsayı özelliğin değiştiricisi (indisi).

value

[out]  Tamsayı tipli özellik değerini alacak olan referans değişkeni.

Dönüş Değeri

Başarılı ise 'true', özellik değeri alınamazsa 'false'.

Örnek:

//--- CChartObject::GetInteger için bir örnek
#include <ChartObjects\ChartObject.mqh> 
//--- 
void OnStart() 
  { 
   CChartObject object; 
   //--- grafik nesnesinin rengini kolay yolla al 
   printf("Nesnenin rengi: %s",ColorToString(object.GetInteger(OBJPROP_COLOR),true)); 
   //--- grafik nesnesinin rengini klasik yolla al 
   long color_value; 
   if(!object.GetInteger(OBJPROP_COLOR,0,color_value)) 
     { 
      printf("Özellik değeri alınamadı, hata: %d",GetLastError()); 
      return
     } 
   else 
      printf("Nesnenin rengi: %s",color_value); 
   for(int i=0;i<object.LevelsCount();i++) 
     { 
      //--- seviye çizgisi kalınlığını kolay yöntemle al 
      printf("Seviye %d kalınlığı: %d",i,object.GetInteger(OBJPROP_LEVELWIDTH,i)); 
      //--- seviye çizgisi kalınlığını klasik yöntemle al 
      long width_value; 
      if(!object.GetInteger(OBJPROP_LEVELWIDTH,i,width_value)) 
        { 
         printf("Özellik alınamadı, hata: %d",GetLastError()); 
         return
        } 
      else 
         printf("Seviye %d kalınlığı: %d",i,width_value); 
     } 
  }