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

 
Yeni bir sayfayla başlayalım.
 

9. _V_LAST 'ın önceki değerini döndürür.

Tüm parametrelerin önceki değeri otomatik olarak kaydedilir. Bunu elde etmek için eleman fonksiyonunu çağırmanız ve _V_LAST tanımlayıcısını geçirmeniz gerekir .

Pratik bir örnek üzerinde bunun nasıl yapıldığını görelim:

1. İstediğiniz pencereyi açın:

   //------------------------------------------------
   //Open the window "Settings example 2".

   w_7_Settings_example_2();
   //------------------------------------------------



2. Üst giriş alanına bir değer (karakter dizisi) gönderin:

   //------------------------------------------------
   //Set up the first string in the textbox:

   w7_s_p4_EDIT_Comment_1("1, 2, 3, 4, 5");
   //------------------------------------------------



3. Şimdi aynı alana başka bir dize gönderin:

   //------------------------------------------------
   //Right after, reset it by the new string:

   w7_s_p4_EDIT_Comment_1("A, B, C, D, E");
   //------------------------------------------------



4. Önceki dizeyi geri alırız:

   //------------------------------------------------
   //Get back the first value:

   string The_first_value = w7_s_p4_EDIT_Comment_1(get_s,p4_V_LAST);
   //------------------------------------------------


5. Ve onu aşağıdaki alana gönderin:

   //------------------------------------------------
   //And send it into the textbox below:

   w7_s_p4_EDIT_Comment_2(The_first_value);
   //------------------------------------------------


6. Üstteki alan satırını tekrar yazalım:

   //------------------------------------------------
   //Reset the value again:

   w7_s_p4_EDIT_Comment_1("A1, B2, C3, D4, E5");
   //------------------------------------------------


7. Önceki dizeyi alttaki alana gönderelim:

   //------------------------------------------------
   //And get the the previous value back:

   string The_second_value = w7_s_p4_EDIT_Comment_1(get_s,p4_V_LAST);
   //------------------------------------------------
   
   //------------------------------------------------
   //Send it into the third textbox:

   w7_s_p4_EDIT_Comment_3(The_second_value);
   //------------------------------------------------



Sonuç:

  • Üst alan geçerli dizgidir.
  • Orta alanda - orijinal dize.
  • Alt alanda - ikinci dize.

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

Aynı yaklaşım her durumda işe yarar.

_V_LAST tanımlayıcısını kullanarak, herhangi bir öğenin son değerini alabilirsiniz (tanımlayıcı bireysel özellikler listesinde belirtilmişse).




Ardından, AÇIK/KAPALI durumlarını ayarlamayı ve öğeleri kilitlemeyi düşünün.

 
Реter Konow #:
Aynı yaklaşım her durumda işe yarar.

AÇIK/KAPALI durumunu da içeriyor mu?

 
hini #:

Ayrıca bir AÇIK/KAPALI durumu da içeriyor mu?

_V_LAST herhangi bir elemanın son parametre değerini döndürür.

Yukarıda gösterilen yaklaşımı diğer elemanlar için de kullanabilirsiniz. Eleman durumlarını değiştirme konusundan sonra bir kaydırıcı ve düğmeli bir alan örneğini göstereceğim.

Senkronizasyona baktığımızda, bir alan kaydırıcının geçerli değerini, diğeri ise önceki değeri döndürecektir.

 

10.Farklı öğeler içinON, OFF, LOCK_ON, LOCK_OFF, LOCK, UNLOCKdurumlarını ayarlama:

Klasik örneği düğmeler ve onay kutuları olmak üzereAÇIK ve KAPALI durumları olan öğe türleri vardır. Ancak, her zaman nötr durumda olan birçok öğe vardır. Her zamanKAPALI. Düğmeler ve onay kutuları ile ortak noktaları nedir? Her ikisi dekilitlenebilir ve açılabilir.Aralarındaki fark, düğmelerin ve onay kutularınınaçık ve kapalı olmak üzereiki durumda kilitli olması , diğer öğelerin ise yalnızcanötrdurumda olmasıdır. Bu farklılıklar nedeniyle, aynı işlevi yerine getiren birkaç tanımlayıcı vardır - öğeleri kilitler ve kilidini açarlar.

Bazı pratik örnekleri ele alalım:

1. Düğmeler ve onay kutuları içeren ayarlar penceresini açalım:

   //------------------------------------------------
   //Open the window "Settings example 1".
   //------------------------------------------------
   w_6_Settings_example_1();
   //------------------------------------------------



2. Düğme için etkin durumunu ayarlayalım:

   //------------------------------------------------
   //Set the button "Start" ON:

   w6_i_p1_BUTTON_Start(p1_ON);
   //------------------------------------------------

Sonuç: düğme basılı duruma geçti.


3. Şimdi, onay kutuları için AÇIK durumunu ayarlayın:

   //------------------------------------------------
   //Set the checkboxes ON:

   w6_i_p7_CHECKBOX_Set_an_option(p7_ON);
   w6_i_p7_CHECKBOX_Set_another_option(p7_ON);
   w6_i_p7_CHECKBOX_And_another_option(p7_ON);
   //------------------------------------------------

Sonuç: Onay kutuları etkin duruma geçti.

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


4. Şimdi,KAPALI tanımlayıcısını kullanarak "Başlat" düğmesinden AÇIK durumunu kaldıralım:

   //------------------------------------------------
   //Set the button "Start" OFF:

   w6_i_p1_BUTTON_Start(p1_OFF);
   //------------------------------------------------

Sonuç: düğme nötr duruma geri döndü.


5. NötrKAPALI durumunu onay kutularına geri döndürelim:

   //------------------------------------------------
   //Set the checkboxes OFF:
 
   w6_i_p7_CHECKBOX_Set_an_option(p7_OFF);
   w6_i_p7_CHECKBOX_Set_another_option(p7_OFF);
   w6_i_p7_CHECKBOX_And_another_option(p7_OFF);
   //------------------------------------------------

Sonuç: onay kutuları nötr duruma geri döndü.


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


Şimdi düğmeyi ve onay kutularını iki olası durumda kilitlemeye geçelim: nötr ve etkin:


1. Düğmeyi nötr durumda kilitleyelim:

   //------------------------------------------------
   //Lock the button "Start" in the state OFF:

   w6_i_p1_BUTTON_Start(p1_LOCK_OFF);
   //------------------------------------------------

Sonuç: düğme nötr durumda kilitlendi.

(*Hata, düzeltilecektir.).


2. Onay kutularını nötr durumda kilitleyelim:

   //------------------------------------------------
   //Lock the checkboxes in the state OFF:

   w6_i_p7_CHECKBOX_Set_an_option(p7_LOCK_OFF);
   w6_i_p7_CHECKBOX_Set_another_option(p7_LOCK_OFF);
   w6_i_p7_CHECKBOX_And_another_option(p7_LOCK_OFF);
   //------------------------------------------------

Sonuç: onay kutuları nötr durumda kilitlendi.


(*Bazı öğeler için kilitli durumda metnin kaybolması sorunu bir sonraki sürümde çözülecektir).


3.LOCK_ON tanımlayıcısını kullanarak düğmeyi ve onay kutularını basılı durumda kilitleyin:

   //------------------------------------------------
   //Lock the button "Start" in the state ON:

   w6_i_p1_BUTTON_Start(p1_LOCK_ON);
   //------------------------------------------------
   //------------------------------------------------
   //Lock the checkboxes in the state ON:

   w6_i_p7_CHECKBOX_Set_an_option(p7_LOCK_ON);
   w6_i_p7_CHECKBOX_Set_another_option(p7_LOCK_ON);
   w6_i_p7_CHECKBOX_And_another_option(p7_LOCK_ON);
   //------------------------------------------------

Sonuç: düğme ve onay kutuları basılı durumda kilitlenir.



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

Şimdi her zaman nötr durumda olan öğeler için KİLİTLE ve KİLİDİ komutlarını test edelim.

Örneğin, C_LIST , D_LIST, H_SLIDER ve S_EDIT öğelerini aynı pencerede ele alalım:



1. Dört öğeyi de aynı anda kilitleyelim:

   //------------------------------------------------
   //Lock the elements:

   w6_s_p6_C_LIST_C_LIST_1(p6_LOCK);
   w6_s_p6_D_LIST_D_LIST_1(p6_LOCK);
   w6_i_p3_H_SLIDER_Roll_the_value(p3_LOCK);
   w6_d_p5_S_EDIT_Spin_the_value(p5_LOCK);
   //------------------------------------------------

Sonuç: C_LIST, D_LIST, H_SLIDER ve S_EDIT öğeleri kilitlenir .


2. Elemanların kilidini açalım:

   //------------------------------------------------
   //Unlock the elements:

   w6_s_p6_C_LIST_C_LIST_1(p6_UNLOCK);
   w6_s_p6_D_LIST_D_LIST_1(p6_UNLOCK);
   w6_i_p3_H_SLIDER_Roll_the_value(p3_UNLOCK);
   w6_d_p5_S_EDIT_Spin_the_value(p5_UNLOCK);
   //------------------------------------------------

Sonuç: öğelerin kilidi geri açıldı.

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

Bu örneklerle, diğer unsurlar da aynı şekilde kilitlenip açıldığı için bu konuyu sonlandırıyoruz.

...

Daha sonra parametre değerlerinin senkronizasyonuna geçiyoruz.

 
Çok iyi, çok pratik.
 
hini #:
Çok iyi, çok pratik.

Teşekkür ederim! Kullanıcı değerlendirmesi daha fazla geliştirme için çok önemlidir.

 
Bir sonraki konu için gerekli materyal miktarını tarttıktan sonra, önceki konuların daha iyi hatırlanması için yarına ertelemenin daha iyi olacağını düşünüyorum.
 

İyi bir GUI'nin işaretleri.

Minimalizm: grafiklerde minimum yer kaplaması, dikkati dağıtan önemsiz unsurların ve bilgilerin olmaması.

İşlevsellik: kaplanan tüm alan mümkün olduğunca kullanışlı olmalı, tüm işlevler sezgisel olmalıdır.

Ergonomi: en sık kullanılan unsurlar erişilebilir ve büyük olmalıdır.

Estetik: hizalama, standart boyutlar, tek tip stil, renk düzeni.

 
Ivan Titov #:

İyi bir GUI'nin işaretleri.

Minimalizm: grafiklerde minimum yer kaplaması, önemsiz unsurların ve dikkati dağıtan bilgilerin olmaması.

İşlevsellik: kaplanan tüm alan mümkün olduğunca kullanışlı olmalı, tüm işlevler sezgisel olmalıdır.

Ergonomi: En sık kullanılan öğeler erişilebilir ve büyük olmalıdır.

Estetik: hizalama, standart boyutlar, tek tip stil, renk şeması.


Örnek gösterdiğiniz için teşekkürler. Tezlerinize tamamen katılıyorum. Umarım eninde sonunda bu gelişim seviyesine ulaşırım.