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

 

Kod:

Seçenek 1:


//------------------------------------------------------
GROUP, A,
 
__, CHECKBOX, "Checkbox 1",         BUTTON, "button 1", H, 50, 
__, CHECKBOX, "Checkbox 2",         BUTTON, "button 2",          
__, CHECKBOX, "Checkbox 3",         BUTTON, "button 3",        
__, CHECKBOX, "Checkbox 4",         BUTTON, "button 4",           
__, CHECKBOX, "Checkbox 5",         BUTTON, "button 5",           
__, CHECKBOX, "Checkbox 6",         BUTTON, "button 6",         

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


Seçenek 2:

//------------------------------------------------------
GROUP, A,
 
__, CHECKBOX, "Checkbox 1",         BUTTON, "button 1"  
__, CHECKBOX, "Checkbox 2",         BUTTON, "button 2",          
__, CHECKBOX, "Checkbox 3",         BUTTON, "button 3",        
__, CHECKBOX, "Checkbox 4",         BUTTON, "button 4",           
__, CHECKBOX, "Checkbox 5",         BUTTON, "button 5",           
__, CHECKBOX, "Checkbox 6",         BUTTON, "button 6",         

END_GROUP,
//--------------------------
//--------------------------
// SET PROPERTIES EXPLICITLY FOR BUTTONS
//--------------------------
i, BUTTONS,     W, 120, H, 20,  END,
//--------------------------
//OVERWRITE PREVIOUS VALUE FOR THIS SPECIFIC BUTTON.
//--------------------------
   "button 1", H, 50,
//--------------------------
// SET PROPERTIES EXPLICITLY FOR CHECKBOXES
//--------------------------
i, CHECKBOXES,  W, 90,    END,
//--------------------------
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 40,
//--------------------------
 
Реter Konow #:

Yıllar önce kodunuzu ayrıştırmış ve sistemlerimde uygulamaya çalışmıştım.

Bu süreçte dinamik formları nasıl oluşturacağımı bulamadım. Bu mümkün mü ve mümkünse lütfen bana örnekler gönderin. Ayrıca, lütfen işlemdeki bir nesnenin özelliklerini, örneğin yazı tipini, boyutunu, formdaki konumunu değiştirmenin mümkün olup olmadığını belirtin.

 


İkinci tür numaralandırma i, SWITCH,..., END şeklindedir.

Etkinleştirilmiş durumu SWITCH c.word veEND c.word arasında adları yazılan öğeler arasında değiştirir,


1.



2.


KOD:

GROUP, A,
 
__, R_BUTTON, "R_button 1",  
__, R_BUTTON, "R_button 2",  
__, R_BUTTON, "R_button 3",  
__, R_BUTTON, "R_button 4",  
__, R_BUTTON, "R_button 5",  
__, R_BUTTON, "R_button 6",  

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
//SET GAPS:
//--------------------------
i, Y_GAP, 20,
//--------------------------
//USE SWITCH ENUMERATION TO SELECT ONE ELEMENT IN THE GROUP:
//--------------------------
 i, SWITCH, 
            "R_button 1", "R_button 2", "R_button 3", 
            "R_button 4", "R_button 5", "R_button 6",  
            
      END,
//--------------------------
 
Sergey Likho #:

Yıllar önce kodunuzu çözümlemiş ve sistemlerimde uygulamaya çalışmıştım.

Bu süreçte dinamik formları nasıl oluşturacağımı bulamadım. Bu mümkün mü ve eğer mümkünse, lütfen bana örnekler gönderin. Ayrıca, lütfen işlemdeki bir nesnenin özelliklerini, örneğin yazı tipini, boyutunu, formdaki konumunu değiştirmenin mümkün olup olmadığını belirtin.

Yapıcının bu versiyonunda dinamik pencere devre dışı bırakılmıştır. Yazı tipleri de dahil olmak üzere öğelerin çeşitli özelliklerini değiştirmek mümkündür. Şu anda bu başlıkta biçimlendirme dili üzerine bazı eğitim çalışmaları yapıyorum. Önceki sayfalara bakmanızı tavsiye ederim. Orada size yardımcı olabilecek ve öğretebilecek malzeme var. Ancak, form üzerinde elemanların düzenlenmesi konusu henüz ele alınmadı. Bu konu ileride. Ayrıca, motoru yayınladığımda kullanıcı uygulamalarına arayüzler bağlayabilirsiniz.

 
Реter Konow #:


İkinci tip numaralandırma i, SWITCH,..., END şeklindedir.

SWITCH c.word ileEND c.word arasında isimleri yazılı olan elemanlar arasında etkinleştirilmiş durumu değiştirir,


1.



2.


KOD:

ANAHTAR numaralandırmasını yakalamak için.

Her birinin adını yazmak için çok fazla öğe olduğunda bir gruptaki öğelere evrensel anahtarlama atama seçeneği vardır. Örneğin açılır listelerde düzinelerce öğe içeren uzun menüler. Bu durumda, her bir öğenin adını listelemeden tüm öğelerin anahtarlanmasını belirtmenin bir yoluna ihtiyacınız vardır.

Bu SWITCH_ALL anahtar sözcüğü ile yapılır.

GROUP, A,
 
__, R_BUTTON, "R_button 1",  
__, R_BUTTON, "R_button 2",  
__, R_BUTTON, "R_button 3",  
__, R_BUTTON, "R_button 4",  
__, R_BUTTON, "R_button 5",  
__, R_BUTTON, "R_button 6",  

END_GROUP,
//--------------------------
//SET GROUP POSITION:
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
//SET GAPS:
//--------------------------
i, Y_GAP, 20,
//--------------------------
//USE SWITCH_ALL WORD TO SWITCH BETWEEN ALL THE ELEMENTS IN THE GROUP:
//--------------------------
i, SWITCH_ALL,
 

Ve bugün için son numaralandırma türü:


i, BLOKLAR, ..., END.

Arayüzün tek tek öğelerini kilitlemeye ihtiyaç duyulduğunda, BLOKLAR c.word kurtarmaya gelir.

Örneğin, kendi gruplarında ya da başka bir grupta bulunan diğer birkaç onay kutusunu engellemesi/etkinleştirmesi gereken iki onay kutunuz var.

Bu şu şekilde yapılır:

//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100", GAP,30, CHECKBOX, "Checkbox 200",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Checkbox 3","Checkbox 5","Checkbox 7", END,

"Checkbox 200", BLOCKS, "Checkbox 4","Checkbox 6","Checkbox 8", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
 i, CHECKBOXES, W, 120,  END,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 


Sonuç:

1. Engelleyen öğe actv durumunda olmadığında, öğeleri engellenir.


2.

Tersine, etkinleştirilirse, açık olurlar.


 

Geri kalanı yarın.

Eklemeyi unuttum. Öğeleri listelemek yerine bir grup adı verebilirsiniz ve içindeki tüm öğeler kilitlenir:

//--------------------------
//FIRST GROUP
//--------------------------
GROUP, "Group 1",

__, CHECKBOX, "Checkbox 100",  

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2Y, "MF", 10,
//--------------------------
i, CHECKBOXES, W, 120,  END,
//--------------------------
//--------------------------------------------------------------
//1. WRITE THE NAME OF THE CHECKBOX THAT WILL BLOCK THE OTHERS:
//2. WRITE KEYWORD "BLOCKS".
//3. WRITE THE NAMES OF THE ELEMENTS (OR GROUPS) IT WILL BLOCK.
//4. PUT "END" IN THE END.
//5. OR, WRITE THE NAME OF THEIR GROUP.
//--------------------------------------------------------------
"Checkbox 100", BLOCKS, "Group 2", END,
//--------------------------------------------------------------

//--------------------------
//SECOND GROUP
//--------------------------
GROUP, "Group 2",


__, CHECKBOX, "Checkbox 3",  CHECKBOX, "Checkbox 4",

__, CHECKBOX, "Checkbox 5",  CHECKBOX, "Checkbox 6",

__, CHECKBOX, "Checkbox 7",  CHECKBOX, "Checkbox 8",

END_GROUP,
//--------------------------
i, AT, _X2X, "MF", 10, _Y2H, "Checkbox 100", 30,
//--------------------------
i, X_GAP, 30,
i, Y_GAP, 20,
//----------------------------
//SET MAIN PROPERTIES (IF YOU DON'T, THEY WILL HAVE DEFAULT VALUES): 
i, CHECKBOXES, W, 120,  END,
//------------------------------------------------------

Sonuç:


 
Çok iyi, lütfen diğer kontrolleri tanıtmaya devam edin
 
hini #:
Pekala, lütfen diğer kontrollerle devam edin.

Evet, tabii ki. Bu planlarda var. Bu arada, diğer kontroller hakkında...

 

İşte diğer birkaç kontrol türünü kilitlemenin nasıl göründüğü:

1. Açık:


2. Kilitli: