ChartSetInteger

Belirlenen çizelgenin karşılık gelen özelliği için değer ayarlar. Çizelge özeliği datetime, int, color, bool veya char tiplerinden biri olmalıdır. Komut, çizelge mesajları kuyruğuna eklendi ve önceki komutların işlenmesinin hemen ardından uygulanacak.

bool  ChartSetInteger(
   long                           chart_id,     // Çizelge tanımlayıcı
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // Özellik tanımlayıcı
   long                           value         // Değer
   );

 

bool  ChartSetInteger(
   long                           chart_id,     // Çizelge tanımlayıcı
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // Özellik tanımlayıcı
   int                            sub_window,   // Alt pencere indisi
   long                           value         // Değer
   );

Parametreler

chart_id

[in]  Çizelge tanımlayıcısı. 0, mevcut çizelge anlamına gelir.

prop_id

[in]  Çizelge özelliğinin tanımlayıcısı. ENUM_CHART_PROPERTY_INTEGER değerlerinden biri olabilir (sadece okunur olanlar hariç).

sub_window

[in]  Çizelge alt penceresinin indisi. İlk durumda varsayılan değer 0'dır (ana çizelge penceresi). Çoğu özellik alt pencere numarasını gerektirmez.

value

[in]  Özellik değeri.

Dönüş değeri

Komutun çizelge mesajları kuyruğuna eklenmesi durumunda 'true', aksi durumda 'false' dönüşü yapar. Hata hakkında bilgi almak için, GetLastError() fonksiyonunu çağırın.

Not

İşlev eşzamansızdır; bu, işlevin, belirtilen grafik sırasına başarıyla eklenmiş olan komutun yürütülmesini beklemediği anlamına gelir. Bunun yerine, kontrolü hemen geri döndürür. Özellik yalnızca, uygun komutun grafik sırasından kaldırılmasından sonra değişecektir. Grafik sırasından komutları hemen yürütmek için ChartRedraw işlevini çağırın.

Bir kerede birkaç grafik özelliğini hemen değiştirmek isterseniz, o zaman ilgili işlevler (ChartSetString, ChartSetDouble, ChartSetString) bir kod bloğunda çalıştırılmalı, sonra aramanız gerekir ChartRedraw bir kere.

Komut yürütme sonucunu kontrol etmek için, belirtilen grafik özelliğini isteyen bir işlev kullanabilirsiniz. (ChartGetInteger, ChartGetDouble, ChartSetString). Ancak, bu işlevlerin senkron olduğunu ve yürütme sonuçlarını beklediğini unutmayın.

Örneğin:

//+------------------------------------------------------------------+
//| Uzman başlatma fonksiyonu                                        |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- Grafik penceresinde fare hareketlerini etkinleştirme
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- Grafik özelliklerinin zorla güncellenmesi, olay işleme için hazırlık sağlar
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| Fare Durumu                                                      |
//+------------------------------------------------------------------+
string MouseState(uint state)
  {
   string res;
   res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // fare sol
   res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // fare sağ 
   res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // fare orta
   res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // fare ilk X tuşu
   res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // fare ikinci X tuşu
   res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // shift tuşu
   res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP");   // control tuşu
   return(res);
  }
//+------------------------------------------------------------------+
//| ChartEvent fonksiyonu                                            |
//+------------------------------------------------------------------+
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));
  }