OBJ_EVENT

Olay nesnesi.

ObjEvent

Not

Fareyi olayın üzerine getirdiğinizde, içinde yer alan metin gözükecektir.

Örnek

Aşağıdaki script, Olay nesnesini çizelge üzerinde oluşturur ve taşır. Grafiksel nesne özelliklerini oluşturmak ve değiştirmek için özel fonksiyonlar geliştirilmiştir. Bu fonksiyonları kendi uygulamalarınızda da "aynı şekilde" kullanabilirsiniz.

 

//--- açıklama
#property description "Script, \"Olay\" grafiksel nesnesini çizer."
#property description "Tutturma noktası koordinatları, çizelge penceresi"
#property description "boyutunun yüzdesi şeklinde ayarlanır."
//--- betiğin çalıştırılması sırasında giriş parametreleri penceresini göster
#property script_show_inputs
//--- betiğin giriş parametreleri
input string          InpName="Event";    // Olay ismi
input int             InpDate=25;         // Olay tarihi, %
input string          InpText="Text";     // Olay metni
input color           InpColor=clrRed;    // Olay rengi
input int             InpWidth=1;         // Vurgulandığında nokta büyüklüğü
input bool            InpBack=false;      // Arka-plan olayı
input bool            InpSelection=false// Taşıma için vurgula
input bool            InpHidden=true;     // Nesne listesinde gizle
input long            InpZOrder=0;        // Fare tıklaması için öncelik
//+------------------------------------------------------------------+
//| Olay nesnesini çizelge üzerinde oluştur                          |
//+------------------------------------------------------------------+
bool EventCreate(const long            chart_ID=0,      // çizelge kimliği
                 const string          name="Event",    // olay ismi
                 const int             sub_window=0,    // alt-pencere indisi
                 const string          text="Text",     // olay metni
                 datetime              time=0,          // zaman
                 const color           clr=clrRed,      // renk
                 const int             width=1,         // vurgulandığında nokta kalınlığı
                 const bool            back=false,      // arka-planda
                 const bool            selection=false// taşıma için vurgula
                 const bool            hidden=true,     // nesne listesinde gizle
                 const long            z_order=0)       // fare tıklaması için öncelik
  {
//--- eğer zaman ayarlanmamışsa, nesneyi son çubuk üzerinde oluştur
   if(!time)
      time=TimeCurrent();
//--- hata değerini sıfırla
   ResetLastError();
//--- Olay nesnesini oluştur
   if(!ObjectCreate(chart_ID,name,OBJ_EVENT,sub_window,time,0))
     {
      Print(__FUNCTION__,
            ": \"Olay\" nesnesini oluşturulması başarısız! Hata kodu = ",GetLastError());
      return(false);
     }
//--- olay metnini ayarla
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
//--- rengi ayarla
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR,clr);
//--- nesne vurgulandığında tutturma noktası kalınlığını ayarla
   ObjectSetInteger(chart_ID,name,OBJPROP_WIDTH,width);
//--- ön-planda (false) veya arkaplanda (true) göster
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
//--- olayı fare ile taşıma modunu etkinleştir (true) veya devre dışı bırak (false)
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
//--- nesne listesinde grafiksel nesnenin adını sakla (true) veya göster (false)
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN,hidden);
//--- çizelge üzerinde fare tıklaması olayının alınması için özellik ayarla
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,z_order);
//--- başarılı çalıştırma
   return(true);
  }
//+------------------------------------------------------------------+
//| Olay nesnesinin metnini değiştir                                 |
//+------------------------------------------------------------------+
bool EventTextChange(const long   chart_ID=0,   // çizelge kimliği
                     const string name="Event"// olay ismi
                     const string text="Text")  // metint
  {
//--- hata değerini sıfırla
   ResetLastError();
//--- nesne metnini değiştir
   if(!ObjectSetString(chart_ID,name,OBJPROP_TEXT,text))
     {
      Print(__FUNCTION__,
            ": metin değiştirilemedi! Hata kodu = ",GetLastError());
      return(false);
     }
//--- başarılı çalıştırma
   return(true);
  }
//+------------------------------------------------------------------+
//| Olay nesnesini taşı                                              |
//+------------------------------------------------------------------+
bool EventMove(const long   chart_ID=0,   // çizelge kimliği
               const string name="Event"// olay ismi
               datetime     time=0)       // zaman
  {
//--- eğer zaman ayarlanmamışsa, olayı son çubuğa ayarla
   if(!time)
      time=TimeCurrent();
//--- hata değerini sıfırla
   ResetLastError();
//--- nesneyi taşı
   if(!ObjectMove(chart_ID,name,0,time,0))
     {
      Print(__FUNCTION__,
            ": \"Olay\" nesnesinin taşınması başarısız oldu! Hata kodu = ",GetLastError());
      return(false);
     }
//--- başarılı çalıştırma
   return(true);
  }
//+------------------------------------------------------------------+
//| Olay nesnesini sil                                               |
//+------------------------------------------------------------------+
bool EventDelete(const long   chart_ID=0,   // çizelge kimliği
                 const string name="Event"// olay ismi
  {
//--- hata değerini sıfırla
   ResetLastError();
//--- nesneyi sil
   if(!ObjectDelete(chart_ID,name))
     {
      Print(__FUNCTION__,
            ": \"Olay\" nesnesinin silinmesi başarısız oldu! Hata kodu = ",GetLastError());
      return(false);
     }
//--- başarılı çalıştırma
   return(true);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- giriş parametrelerinin doğruluğunu kontrol et
   if(InpDate<0 || InpDate>100)
     {
      Print("Hata! Hatalı giriş parametresi değerleri!");
      return;
     }
//--- çizelge penceresindeki görünür çubukların sayısı
   int bars=(int)ChartGetInteger(0,CHART_VISIBLE_BARS);
//--- çizginin tutturma noktası koordinatlarını ayarlamak ve değiştirmek için
//--- tarih değerlerini depolayacak bir dizi
   datetime date[];
//--- bellek tahsisi
   ArrayResize(date,bars);
//--- tarih dizisini doldur
   ResetLastError();
   if(CopyTime(Symbol(),Period(),0,bars,date)==-1)
     {
      Print("Zaman değerlerinin kopyalanması başarısız oldu! Hata kodu = ",GetLastError());
      return;
     }
//--- nesneyi oluşturmak için gereken noktaları tanımla
   int d=InpDate*(bars-1)/100;
//--- Olay nesnesini oluştur
   if(!EventCreate(0,InpName,0,InpText,date[d],InpColor,InpWidth,
      InpBack,InpSelection,InpHidden,InpZOrder))
     {
      return;
     }
//--- çizelgeyi yenile ve 1 saniye bekle
   ChartRedraw();
   Sleep(1000);
//--- şimdi, nesneyi taşı
//--- döngü sayacı
   int h_steps=bars/2;
//--- nesneyi taşı
   for(int i=0;i<h_steps;i++)
     {
      //--- bir sonraki değeri kullan
      if(d<bars-1)
         d+=1;
      //--- tutturma noktasını taşı
      if(!EventMove(0,InpName,date[d]))
         return;
      //--- script işlemi devre dışı bırakıldı mı kontrol et
      if(IsStopped())
         return;
      //--- çizelgeyi yenile
      ChartRedraw();
      // 0.05 saniyelik gecikme
      Sleep(50);
     }
//--- 1 saniyelik gecikme
   Sleep(1000);
//--- kanalı çizelgeden sil
   EventDelete(0,InpName);
   ChartRedraw();
//--- 1 saniyelik gecikme
   Sleep(1000);
//---
  }