MQL ile yazılmış kullanıcı arayüzleri galerisi - sayfa 37

 
Edgar Akhmadeev #:

Soru:

"Include\(1) KIB 1.0\(1) BASE\(1) DOCUMENTATION\" isimli bir katalog bulunmaktadır.

Bunlar sadece kod örnekleri mi, yoksa bir demo programı olarak derlenmesi mi amaçlanıyor? Bunu kullanmanın doğru yolu nedir?

En çok çalışan kodlar "Include\(1) KIB 1.0\(1) BASE\(2) STATE KIB-CODE" klasöründedir.

Tasarımcının pencere kodları vardır. Onları inceleyebilirsiniz.

 
Реter Konow #:

1. V kutuları ve sekmeler her zaman ayrı gruplar halinde yazılır. Bu daha kullanışlıdır. Bu gruplara başka bir şey eklenmemesi tercih edilir. Aksi takdirde"konumlandırma ormanı" başlar. Elbette bu şekilde de yapabilirsiniz ama buna değmez...


R etag Konow #: Çok önemli bir nüans. Sekmeler V_BOX(a) tuval görüntülerinin değiştirilmesini kontrol eder. Yukarıda bildirilmelidirler. Önce sekmeler, sonra V_BOX( s).

Sekmelerle nasıl çalışacağımı henüz bulamadım. H_TAB çizdim, ancak bunlar sadece düğmeler ve bunları kullanarak sekmeleri nasıl değiştireceğimi bilmiyorum. İki sekmeli bir örnek istiyorum. Yoksa bunun için çok mu erken?


R etag Konow #:

3. Tabloların içine "METİN" kelimesini koymuşsunuz. Bu gereksizdir. CELL hücrelerinin, bağlandığında kullanıcı uygulamasından bir değer alan kendi parametreleri vardır. Ya da değeri ayarlamak için V_CURRENT sözcüğünü kullanın.

Gerekli olan CELL'dir, hücreler programlı olarak doldurulacaktır. Şimdiye kadar sabit değerler ayarladım.

Ve V_CURRENT yardımcı oldu, çöpler gitti.


R etag Konow #: Bir başka önemli nüans. Tüm tabloların başlıklarında bir T_HEADER öğesi vardır

Evet, ilk tabloda uygun çünkü satır adları için bir sütun oluşturuyor.

İkinci tabloda bu sütuna gerek yok, bu yüzden eklemedim. Ama iyi sonuç verdi.

İkinci tablo gelecekteki bir olay günlüğüdür. Belki de tablo bunun için kötü bir seçenektir? Eğer programatik olarak satır eklemek zor olurdu.

 
Edgar Akhmadeev #:

H_TAB, "Rapor" üzerinde, simgeyi ekleyene kadar, başlığı bozan bir simge hayaleti vardı. Üzerine tıkladıktan sonra kayboldu.

Bir hata olup olmadığını bilmiyorum, ancak açıklanan TEXT_ALIGN_*'ler eksik.

Bu henüz cevaplanmadı.

Ve TB_BUTTON yerine I_BUTTON uygulamak istedim, ancak orada simgeyi ve metni nasıl hizalayacağınızı bilmeniz gerekir, varsayılan olarak üst üste gelirler.

 
Edgar Akhmadeev #:

Sekmelerle nasıl çalışacağımı henüz çözemedim. H_TAB çizdim, ancak bunlar sadece düğmeler, ancak bunları kullanarak sekmeleri nasıl değiştireceğimi bilmiyorum. İki sekmeli bir örnek istiyorum. Yoksa bunun için çok mu erken?

CELL tam olarak ihtiyacım olan şey, hücreler programlı olarak doldurulacak. Şimdiye kadar sabit değerler ayarladım.

Ve V_CURRENT yardımcı oldu, çöpler kayboldu.

Evet, ilk tabloda uygun çünkü satır adları için bir sütun oluşturuyor.

İkinci tabloda bu sütuna gerek yok, bu yüzden eklemedim. Ama iyi çalıştı.

İkinci tablo gelecekteki bir olay günlüğüdür. Belki de tablo bunun için kötü bir seçenektir? Eğer programatik olarak satır eklemek zor olacaktır.

"Include\(1) KIB 1.0\(1) BASE\ (2) STATE KIB-CODE" bölümündeki Etiketler Menüsü penceresinden bir örnek alın. Bir sekme grubu ve bir V_BOX bildirir. Üç sekme için yalnızca bir tanedir. Her sekmenin kendi simge grubu vardır. Bunu bir şablon olarak kullanabilirsiniz. Sadece üstte sekmeler var, altta değil. Onları alta koymayı deneyin. Sanırım işe yarayacaktır.


//===================================================================================================================
 GROUP, "Main tabs",

__, H_TAB, "16x16",ON,   H_TAB, "24x24",  H_TAB, "32x32", GAP,150, EDIT, "E1", W, 320, _,READ_ONLY,  

END_GROUP,
//----------------------------
i, AT, _X2X, "MF", 2, _Y2Y, "MF",2,

i, SWITCH,"16x16","24x24","32x32",END,
i, TENURED,
i, H_TABS, AH_COLOR, (int)C'255,255,255', A_COLOR, (int)C'255,255,255', N_COLOR, (int)C'250,250,250',
 
 P_COLOR,(int)C'236,244,252',  NPG_LINES,20, NPG_STEP,1, NG_LINES,20, NG_STEP,1, END,

"16x16",     IS_APPEARANCE_CONTROLLER,  "LABELS 16*16",END,
"24x24",     IS_APPEARANCE_CONTROLLER,  "LABELS 24*24", END,
"32x32",     IS_APPEARANCE_CONTROLLER,  "LABELS 32*32", END,
//----------------------------------------------------------------------------------
"LABELS 16*16","24x24","32x32", 
//===================================================================================================================

//===================================================================================================================
//----------------------------------------------------------------------------------
GROUP,"Labels v_box 16*16",

__,   V_BOX,"V1", W,800, _,H,330,_,N_FRAME,1,_,A_FRAME,1,_,NP_FRAME,1, AP_FRAME,1,

END_GROUP,
//----------------------------
i, AT, _X2X, "16x16", 0, _Y2H, "16x16", -1,/**/
//===================================================================================================================
 
Edgar Akhmadeev #:

Bu soruya henüz yanıt verilmemiştir.

Ve TB_BUTTON yerine I_BUTTON uygulamak istedim, ancak orada simgeyi ve metni nasıl hizalayacağınızı bilmeniz gerekir, varsayılan olarak üst üste gelirler.

Bunu düşünmem gerek. Birçok şeyi unuttum. Bir çözüm arayıp size haber vereceğim.

 
Edgar Akhmadeev #:

Bu soruya henüz yanıt verilmemiştir.

Ve TB_BUTTON yerine I_BUTTON uygulamak istedim, ancak orada simgeyi ve metni nasıl hizalayacağınızı bilmeniz gerekir, varsayılan olarak üst üste gelirler.

C_HEADER ile aynı yaklaşımı kullanmaya çalışın:

i, C_HEADERS, 
        TEXT_STYLE, (int)FW_BOLD, 
        FONT_SIZE, 10, 
        text, _A1_, _X2X, 
        text, _C1_, 20, 
        text, N_COLOR, (int)C'86,86,86', 
        NG_LINES, 30, NG_STEP, -1,
        POINTED, 0, 
        N_COLOR, (int)C'219,233,249', A_COLOR, (int)C'155,244,196', AH_COLOR, (int)C'155,244,196', 
        END,

Örneğin:

i, I_BUTTONS,  text, _A1_, _X2X,  text, _C1_, 30,    label, _A1_, _X2X,  label, _C1_, 5,     W, 120, H,30,    END,
 
Реter Konow #:
i, I_BUTTONS, text, _A1_, _X2X, text,_C1_, 30, label, _A1_, _X2X, label,_C1_, 5, W, 120, H,30, END,


Çalışma hattı.

 

Simge ve metni öğeler üzerinde konumlandırmanın ikinci çeşidi:

i, I_BUTTONS,  
     //-------------- 
    text, _A1_, _C2C, // Привязка текста к центру кнопки по оси Х  (_C2C - center to center). 
    text, _C1_,    0// Поправка позиции относительно центра кнопки по оси Х (0). 
     //-------------- 
    text, _A2_, _C2C,  // Привязка текста к центру кнопки по оси Y  (_C2C - - center to center). 
    text, _C2_,   10// Поправка позиции текста относительно центра кнопки по оси Y  (10). 
     //-------------- 
    label, _A2_, _Y2Y, // Привязка иконки к верху кнопки по оси Y  (_Y2Y  - Y to Y). 
    label, _C2_,   5// Поправка позиции иконки относительно Y координаты кнопки по оси Y  (5). 
     //-------------- 
    W, 100 , H, 50 , 
     //-------------- 
    END,
   //------------------------------------------------------ 
   "Button 1" , N_LABEL, "::Images\\16x16\\Lock.bmp" ,
   //------------------------------------------------------


text, _A1_, _C2C, // Metni X ekseni boyunca düğmenin merkezine bağlayın (_C2C - merkezden merkeze).

text, __C1_, 0, // X ekseni boyunca düğmenin merkezine göre konumun düzeltilmesi (0).

//--------------

text, _A2_, _C2C, // Metni Y ekseni boyunca düğmenin merkezine bağlayın (_C2C - - merkezden merkeze).

text, __C2_, 10, // Y ekseni boyunca düğmenin merkezine göre metin konumunun düzeltilmesi (10).

//--------------

label, _A2_, _Y2Y, // Simgeyi Y ekseni boyunca düğmenin üstüne yaslayın (_Y2Y - Y'den Y'ye Koordinat).

label, __C2_, 5, // Simge konumunun Y ekseni boyunca düğmenin Y koordinatına göre düzeltilmesi (5).




 

Esasen, metni ve simgeyi düğmelerin içine konumlandırmak için yalnızca iki seçenek vardır. Her ikisi de yukarıda gösterilmiştir.

Bunu metin ve simge içeren herhangi bir öğe için şablon olarak kullanabilirsiniz. Sadece öğe adını, simgeleri, metinleri ve düzeltmeleri (_COPY1, _COPY2) değiştirin.

Teknik olarak, öğelerin içinde metin ve simge düzenlemesinin diğer varyantlarını yapabilirsiniz, ancak pratikte bunlar mantıklı değildir. İhtiyaç ortaya çıkarsa, bunları düşünebilirsiniz.

Genel olarak şablon hazırdır. Denemek için tıklayın.

 
Edgar Akhmadeev #:

Bu soruya henüz yanıt verilmemiştir.

...

Cevabım yardımcı oldu mu?