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

 

Düğmeleri çoğaltın ve genel metin özelliklerini ayarlayın:


 

Kod:

//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "My first window",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Smile.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*WINDOW IS ALWAYS ON TOP*/ ALWAYS_ON_TOP, /*(OOT)*/  

/*ОТСТУПЫ КРАЕВ ОКНА*/      MARGINS, 20,20,  /*Х, Y*/
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
//1. DECLARE A GROUP WITH AN ABSTRACT NAME  A.
//2. DECLARE A NEW ROW OF ELEMENTS IN THE GROUP WITH A SYMBOL  __, 
//3. DECLARE A BUTTON AND WRITE IT'S NAME.
//4. END GROUP WITH THE KEYWORDS  END_GROUP,
//------------------------------------------------------
GROUP, A,

__, BUTTON, "Button 1",  BUTTON, "Button 5", 
__, BUTTON, "Button 2",  BUTTON, "Button 6", 
__, BUTTON, "Button 3",  BUTTON, "Button 7", 
__, BUTTON, "Button 4",  BUTTON, "Button 8", 

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//--------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 
//PROPERTIES FOR ALL BUTTONS IN THE GROUP
//--------------------------
i, BUTTONS, text, N_COLOR,  (uint)clrBlack,
            text, A_COLOR,  (uint)clrRed,
            text, P_COLOR,  (uint)clrLime,
            text, AP_COLOR, (uint)clrWhite,  
            
            FONT_SIZE, 12, 
            TEXT_FONT,"Courier New",
            TEXT_STYLE,(int)FONT_ITALIC,
            
            FIC,          //FIXED IF CLICKED       
                                         
   END, 
//--------------------------

//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 
Harika örnek öğretici, lütfen devam edin
 
hini #:
Ders kitabı için harika bir örnek, lütfen devam edin.
Tamam. Her gün bunun gibi bir ders yapacağım.
 


İşaretleme dili ve yapıcı hakkında genel bilgiler.


1. Yapıcı elemanların özellik değerleri önceden tanımlanmıştır. Açıkça tanımlanmamışsa, özelliklere varsayılan değerler atanır.


2. Elemanların etkileşimli davranışları önceden programlanmıştır, ancak kullanıcı farklı yanıtları değiştirme veya devre dışı bırakma yeteneğine sahiptir.


3. Arayüz pencere boyutları, bileşen gruplarının konumu ve boyutu hesaplanırken otomatik olarak hesaplanır. Kullanıcı tarafından belirtilmişse sağ ve alt kenar boşlukları (marjlar) da dikkate alınır.


4. Bazı öğelerin uzunluğu doğrudan metinlerin uzunluğuna bağlıdır. Kullanıcı açık bir değer belirlememişse otomatik olarak hesaplanır. Aksi takdirde, kurucu öğenin ötesine geçen metni keser ve kullanıcının değerini kaydetmek için noktalı bir çizgi koyar. Bu tür öğeler arasında onay kutusu, radyo düğmesi, metin etiketi, yatay ve dikey sekme bulunur.


5. Bir pencere oluştururken, tasarımcı sekmeli düzen ve öğe gruplarında simetriyi korumak için çaba gösterir. Onay kutuları veya benzer tipteki elem anlar otomatik olarak ortak bir uzunluk değerine hizalanır.


6. Tasarımcının tablo düzenine bağlı kalması, arayüzü oluşturmayı çok daha kolay hale getirir ve daha fazla esneklik için, bayraklar ve bağlar kullanılarak düzenleme ile öğeleri gruplara ayırmak üzere tasarlanmıştır.


7. Tek bir penceredeki öğe sayısında sınır yoktur.


8. Tek bir proje içindeki pencere sayısında bir sınırlama yoktur.


9. TÜM projeler için bir görev çubuğu ve içerik menüsü bulunması zorunludur. Ancak, dosyasındaki OPEN_ON_INIT (OOI) komutunu yorumlarsanız görev çubuğunun görünümü devre dışı bırakılabilir. Daha sonra pencere simge durumuna küçültme özelliğini devre dışı bırakmak gerekecektir (böyle bir olasılık vardır).


10. Kullanıcının görev çubuğunun sağ tarafında, kullanıcı pencerelerini çağırmak için düğmeler ayarlayabilir.


11. Tüm öğeler, imleç üzerine getirildiğinde bir ad içeren bir araç ipucuna sahip olabilir. Bunu yapmak için _,SHOW_NAMETIP özelliklerine bir komut yazmanız gerekir.


12. Kurucunun veya kullanıcının içerik menüsü grafiğe çift tıklandığında açılır.


13. Yapıcının yardımcı pencereleri, çerçeveleri, renkleri, yazı tiplerini, simgeleri ve sesleri belirlerken öğelerin niteliklerini bulmayı ve seçmeyi kolaylaştırır.


14. En son yapıda kod yazarken, biçimlendirme kodunu derlemek ve ardından KIB-source.mq5 göstergesini derlemek gerekir, aksi takdirde beyaz ekran şeklinde bir hata oluşur ve kilitlenir (eski yapı 2470'te böyle bir sorun yoktur).


Devamı aşağıdaki gibidir...

 
Daha sonra, bir grup oluştururken öğelerin düzenini inceleyelim.
 

Bir grubu pencere içinde konumlandırma:



Sağda ve altta pencere girintisini ayarlama:

0.


1.

2.




Öğeler arasındaki boşlukları ayarlama:

1.

2.


3.


5.


6.


7.


8.


9.




Galleria di interfacce utente scritte in MQL
Galleria di interfacce utente scritte in MQL
  • 2024.05.30
  • Реter Konow
  • www.mql5.com
Di recente, mentre riordinavo il mio vecchio computer portatile, mi sono imbattuto per caso in una cartella persa nella selva delle directory...
 

Kod:

//+------------------------------------------------------------------+
//|                                              My first window.mqh |
//+------------------------------------------------------------------+
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "My first window",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Smile.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*WINDOW IS ALWAYS ON TOP*/ ALWAYS_ON_TOP, /*(OOT)*/  

/*MARGINS OF THE WINDOW*/   MARGINS, 40,40,/*Х, Y*/
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
//1. DECLARE A GROUP WITH AN ABSTRACT NAME  A.
//2. DECLARE A NEW ROW OF ELEMENTS IN THE GROUP WITH A SYMBOL  __, 
//3. DECLARE A BUTTON AND WRITE IT'S NAME.
//4. END GROUP WITH THE KEYWORDS  END_GROUP,
//------------------------------------------------------
GROUP, A,
 
__, BUTTON, "Button 1", GAP,40, BUTTON, "Button 7",

GAP,40, //GAP BETWEEN THE LINES

__, BUTTON, "Button 2", GAP,40, BUTTON, "Button 8",

GAP,40,  //GAP BETWEEN THE LINES

__, BUTTON, "Button 3", GAP,40, BUTTON, "Button 9",
__, BUTTON, "Button 4", GAP,40, BUTTON, "Button 10",
__, BUTTON, "Button 5", GAP,40, BUTTON, "Button 11",
__, BUTTON, "Button 6", GAP,40, BUTTON, "Button 12",

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------

//--------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 

//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------


//+------------------------------------------------------------------+
//|                                              My first window.mqh |
//+------------------------------------------------------------------+
//DECLARE A NEW WINDOW
//----------------------------------------------------------------------------------
NEW_WINDOW,  
//------------------------------------------------------
/*SET WINDOW TYPE*/         W_TYPE, SETTINGS,  
//------------------------------------------------------
/*WRITE WINDOW'S NAME*/     W_NAME, "My first window",
//------------------------------------------------------
/*POINT TO WINDOW'S ICON*/  W_ICON, "::Images\\16x16\\Smile.bmp",  
//------------------------------------------------------

//------------------------------------------------------
/*SET WINDOW'S ADDITIONAL PROPERTIES*/   
//----------------------------------------------------------------------------------
/*WINDOW OPENS AT START*/   OPEN_ON_INIT,  /*(OOI)*/

/*WINDOW IS ALWAYS ON TOP*/ ALWAYS_ON_TOP, /*(OOT)*/  

/*MARGINS OF THE WINDOW*/   MARGINS, 40,40,/*Х, Y*/
//----------------------------------------------------------------------------------
//
//----------------------------------------------------------------------------------
//1. DECLARE A GROUP WITH AN ABSTRACT NAME  A.
//2. DECLARE A NEW ROW OF ELEMENTS IN THE GROUP WITH A SYMBOL  __, 
//3. DECLARE A BUTTON AND WRITE IT'S NAME.
//4. END GROUP WITH THE KEYWORDS  END_GROUP,
//------------------------------------------------------
GROUP, A,
 
__, BUTTON, "Button 1",  BUTTON, "Button 7",
__, BUTTON, "Button 2",  BUTTON, "Button 8",
__, BUTTON, "Button 3",  BUTTON, "Button 9",
__, BUTTON, "Button 4",  BUTTON, "Button 10",
__, BUTTON, "Button 5",  BUTTON, "Button 11",
__, BUTTON, "Button 6",  BUTTON, "Button 12",

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 40, //GAP BETWEEN THE ELEMENTS IN THE ROW

i, Y_GAP, 40,  //GAP BETWEEN THE ROWS 
//--------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 




//------------------------------------------------------
//FINISH THE WINDOW BY KEYWORDS END_WINDOW,
//------------------------------------------------------
END_WINDOW,
//----------------------------------------------------------------------------------
 

Öğelerin düzeni temasının devamı olarak. Düğmelerde her şey açıktır, çünkü ya varsayılan boyutlara sahiptirler ya da kullanıcı tarafından tanımlanırlar. Ancak uzunluğu metnin uzunluğuna bağlı olan öğelerde her şey belirsizdir. İşte onay kutuları ve radyo düğmeleri ile ilgili bazı örnekler:

1. Onay kutularının ve radyo düğmelerinin adları neredeyse eşittir.


2. Bir radyo düğmesi diğerlerinden çok daha uzun. Aynı uzunlukta olurlar:


3. İkinci sütunda, ortadaki onay kutusu önemli ölçüde daha uzundur. Diğerleri onun boyutunu alır:


4. Onay kutularının ve radyo düğmelerinin uzunluğunun açıkça ayarlanması, giden metnin otomatik olarak kısaltılmasıyla sonuçlanır.


 
Seçenek kodu 1:
GROUP, A,
 
__, R_BUTTON, "R_button with a long name", CHECKBOX, "Checkbox 1",
__, R_BUTTON, "R_button 2", CHECKBOX, "Checkbox 2",
__, R_BUTTON, "R_button 3", CHECKBOX, "Checkbox 3", 
__, R_BUTTON, "R_button 4", CHECKBOX, "Checkbox 4 with the longest name",
__, R_BUTTON, "R_button 5", CHECKBOX, "Checkbox 5",
__, R_BUTTON, "R_button 6", CHECKBOX, "Checkbox 6",

END_GROUP,
//--------------------------

//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,

i, Y_GAP, 30,
//--------------------------

Seçenek kodu 2:

//------------------------------------------------------
GROUP, A,
 
__, R_BUTTON, "R_button with a long name", CHECKBOX, "Checkbox 1",
__, R_BUTTON, "R_button 2", CHECKBOX, "Checkbox 2",
__, R_BUTTON, "R_button 3", CHECKBOX, "Checkbox 3", 
__, R_BUTTON, "R_button 4", CHECKBOX, "Checkbox 4 with the longest name",
__, R_BUTTON, "R_button 5", CHECKBOX, "Checkbox 5",
__, R_BUTTON, "R_button 6", CHECKBOX, "Checkbox 6",

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR R_BUTTONS
//--------------------------
i, R_BUTTONS,  W, 120, END,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR CHECKBOXES
//--------------------------
i, CHECKBOXES, W, 90,  END,
//--------------------------
i, X_GAP, 30,

i, Y_GAP, 30,
//--------------------------