Bir Nesnenin İliştirildiği Çizelge Köşesi

Koordinatlarını çizelgenin bir köşesine göre, piksel cinsinden ayarlayabileceğiniz bir takım grafiksel nesneler vardır. Bu nesneler, tipleriyle birlikte şöyle gösterilebilir (nesne tipi, parantez içinde belirtilir):

  • Label (OBJ_LABEL);
  • Button (OBJ_BUTTON);
  • Bitmap Label (OBJ_BITMAP_LABEL);
  • Edit (OBJ_EDIT).
  • Rectangle Label (OBJ_RECTANGLE_LABEL);

Nesne

Tanıtıcı

X/Y

Width/Height

Date/Price

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

Metin

OBJ_TEXT

Evet

Evet

Evet

Etiket

OBJ_LABEL

Evet

Evet (salt okunur)

Evet

Evet

Evet

Düğme

OBJ_BUTTON

Evet

Evet

Evet

Bitmap

OBJ_BITMAP

Evet (salt okunur)

Evet

Evet

Bitmap Etiketi

OBJ_BITMAP_LABEL

Evet

Evet (salt okunur)

Evet

Evet

Düzenle

OBJ_EDIT

Evet

Evet

Evet

Dikdörtgen Etiket

OBJ_RECTANGLE_LABEL

Evet

Evet

Evet

Tabloda şu tasarımlar kullanılabilir:

  • X/Y – tutturma noktalarının koordinatları çizelge köşesine göre, pikseller cinsinden belirlenir;
  • Width/Height – nesnelerin bir yüksekliği ve genişliği vardır. "Salt okunur" modunda genişlik ve yükseklik değerleri sadece bir defa – nesnenin çizelgeye eklenmesi sırasında – hesaplanır;
  • Date/Price – tutturma noktaları tarih ve fiyat verilerine göre belirlenir;
  • OBJPROP_CORNER – belirtilen tutturma noktası koordinatlarına göre çizelge köşesini tanımlar. ENUM_BASE_CORNER sayımının 4 değerinden biri olabilir;
  • OBJPROP_ANCHOR – tutturma noktasını nesne içinde tanımlar ve ENUM_ANCHOR_POINT sayımının 9 değerinden birini alabilir. Koordinatlar bu noktadan seçili çizelge köşesine kadar piksel cinsinden tanımlanır;
  • OBJPROP_ANGLE – nesne rotasyon açısını sat-yönünün tersine doğru tanımlar.

X ve Y koordinatlarının piksel bazında ölçüleceği çizelge köşesi belirtmek için, ObjectSetInteger(chartID, name, OBJPROP_CORNER, chart_corner) fonksiyonunu kullanın, burada:

  • chartID - çizelge tanıtıcısıdır;
  • name – grafiksel nesnenin ismidir;
  • OBJPROP_CORNER – bağlama köşesinin belirlenmesi için özellik tanımlayıcısıdır;
  • chart_corner – istenen çizelge köşesidir, ENUM_BASE_CORNER sayımının değerlerinden biri olabilir.

ENUM_BASE_CORNER

Tanıtıcı

Açıklama

CORNER_LEFT_UPPER

Çizelgenin sol üst köşesindeki koordinat merkezi

CORNER_LEFT_LOWER

Çizelgenin sol alt köşesindeki koordinat merkezi

CORNER_RIGHT_LOWER

Çizelgenin sağ alt köşesindeki koordinat merkezi

CORNER_RIGHT_UPPER

Çizelgenin sağ üst köşesindeki koordinat merkezi

Örnek:

void CreateLabel(long   chart_id,
                 string name,
                 int    chart_corner,
                 string text_label,
                 int    x_ord,
                 int    y_ord)
  {
//---
   ObjectCreate(chart_id,name,OBJ_LABEL,0,0,0);
   ResetLastError();
   if(!ObjectSetInteger(chart_id,name,OBJPROP_CORNER,chart_corner))
      Print("Nesneyi bağlamak için açı ayarlanamadı ",
            name,", hata kodu ",GetLastError());
   ObjectSetInteger(chart_id,name,OBJPROP_XDISTANCE,x_ord);
   ObjectSetInteger(chart_id,name,OBJPROP_YDISTANCE,y_ord);
   ObjectSetString(chart_id,name,OBJPROP_TEXT,text_label);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,0);
   int width=ChartGetInteger(0,CHART_WIDTH_IN_PIXELS,0);
   string arrows[4]={"LEFT_UPPER","RIGHT_UPPER","RIGHT_LOWER","LEFT_LOWER"};
   CreateLabel(0,arrows[0],CORNER_LEFT_UPPER,"0",50,50);
   CreateLabel(0,arrows[1],CORNER_RIGHT_UPPER,"1",50,50);
   CreateLabel(0,arrows[2],CORNER_RIGHT_LOWER,"2",50,50);
   CreateLabel(0,arrows[3],CORNER_LEFT_LOWER,"3",50,50);
  }