ObjectSetString

Belirtilen nesne özelliğinin değerini ayarlar. Nesne özelliği string tipinde olmalıdır. Fonksiyonun iki çeşidi vardır.

Birinci versiyonda şekillendirici yer almaz

bool  ObjectSetString(
   long                            chart_id,          // çizelge tanımlayıcı
   string                          name,              // nesne ismi
   ENUM_OBJECT_PROPERTY_STRING     prop_id,           // özellik tanımlayıcısı
   string                          prop_value         // değer
   );

İkinci versiyonda değer, şekillendirici belirtilerek ayarlanır

bool  ObjectSetString(
   long                            chart_id,          // çizelge tanımlayıcı
   string                          name,              // nesne ismi
   ENUM_OBJECT_PROPERTY_STRING     prop_id,           // özellik tanımlayıcısı
   int                             prop_modifier,     // şekillendirici
   string                          prop_value         // değer
   );

Parametreler

chart_id

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

name

[in]  Nesne ismi.

prop_id

[in]  Nesne özelliğinin tanıtıcısı. Bu değer, ENUM_OBJECT_PROPERTY_STRING sayımının değerlerinden biri olabilir.

prop_modifier

[in]  Belirtilen özelliğin şekillendiricisi. Fibonacci araçlarındaki ve Andrews Dirgenindeki seviye numarasını gösterir. Seviyelerin numaralandırılmasına sıfırdan başlanır.

prop_value

[in]  Özelliğin değeri.

Dönüş değeri

Grafiksel nesnenin özelliğini değiştirmek için oluşturulan komut, çizelgeye başarılı şekilde gönderilmişse 'true' değerine, aksi durumda 'false' değerine dönüş yapar. Hata ile ilgili daha fazla bilgi için GetLastError() fonksiyonunu çağırın.

Not

Fonksiyon, eşzamansız bir çağrı kullanır; bu, işlevin, belirtilen grafiğin sırasına eklenen komutun yürütülmesini beklemediği anlamına gelir. Bunun yerine, hemen kontrol döndürür.

Komut yürütme sonucunu kontrol etmek için, belirtilen nesne mülkiyetini isteyen bir fonksiyon kullanabilirsiniz. Bununla birlikte, bu tür işlevlerin bu çizelgenin sonuna eklendiğini ve yürütme sonucunu beklediklerini ve bu nedenle zaman alıcı olabileceğini unutmamalısınız. Bu özellik, bir grafikte çok sayıda nesneyle çalışırken dikkate alınmalıdır.

Bir nesne yeniden isimlendirildiğinde, aynı anda iki olay ortaya çıkar. Bu olaylar, bir Uzman Danışman veya gösterge içerisinde OnChartEvent() fonksiyonu ile işlenebilir:

  • eski isimli nesnenin silinmesi olayı;
  • yeni isimli nesnenin oluşturulması olayı.

 

Örnek:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
 
#define   OBJ_NAME   "TestObjectSetString"   // nesne adı
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- mevcut grafik kimliği ve sembolü, nesne açıklamalarını görüntülemek için bayrak
   long   chart_idChartID();
   string symbol  = ChartSymbol(chart_id);
   bool   descriptChartGetInteger(chart_idCHART_SHOW_OBJECT_DESCR); 
   
//--- nesne açıklamalarının grafikte görüntülenmesini ayarla
   ChartSetInteger(chart_idCHART_SHOW_OBJECT_DESCRtrue);
 
//--- mevcut Bid fiyatını al
   double bid=0;;
   ResetLastError();
   if(!SymbolInfoDouble(symbolSYMBOL_BIDbid))
     {
      Print("SymbolInfoDouble() failed. Error "GetLastError());
      return;
     }
     
//--- mevcut Bid fiyatı üzerinde “yatay çizgi” grafiksel nesnesi oluştur
   if(!ObjectCreate(chart_idOBJ_NAMEOBJ_HLINE00bid))
     {
      Print("ObjectCreate() failed. Error "GetLastError());
      return;
     }
//--- nesne açıklamasını ayarla
   if(!ObjectSetString(chart_idOBJ_NAMEOBJPROP_TEXT"Bid: "+DoubleToString(bid, (int)SymbolInfoInteger(symbolSYMBOL_DIGITS))))
     {
      Print("ObjectSetString() failed. Error "GetLastError());
      return;
     }
//--- değişiklikleri hemen yansıtmak için grafiği güncelle
   ChartRedraw(chart_id);
   
//--- nesne açıklamasını al
   string string_var="";
   if(!ObjectGetString(chart_idOBJ_NAMEOBJPROP_TEXT0string_var))
     {
      Print("ObjectGetInteger() failed. Error "GetLastError());
      return;
     }
//--- nesne adını al
   string obj_name=ObjectGetString(chart_idOBJ_NAMEOBJPROP_NAME);
   
//--- nesne türünü al
   ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(chart_idOBJ_NAMEOBJPROP_TYPE);
   
//--- günlükte nesne türünü, adını ve açıklamasını görüntüle
   PrintFormat("The %s object named \"%s\" has the description \"%s\"",EnumToString(object_type), obj_namestring_var);
   
//--- iki saniye bekle ve oluşturulan nesneyi sil
   Sleep(2000);
   ObjectDelete(chart_idOBJ_NAME);
   
//--- grafik için nesnelerin açıklamalarını görüntülemeye yönelik ilk bayrağı geri döndür
   ChartSetInteger(chart_idCHART_SHOW_OBJECT_DESCRdescript);
   ChartRedraw(chart_id);
   /*
   sonuç:
   The OBJ_HLINE object named "TestObjectSetString" has the description "Bid: 0.62096"
   */
  }