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

 
Dizin hala Rusça ...... Umarım KIB PROJECTS gibi dizin ve dosya adlarının İngilizce olması mümkündür ...... Bu benden küçük bir istek!
 
#include<(2)  KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh>

Demo proje 1, (1) KIB-kaynak v1'e dahil edildi, ancak diyagramda ilgili pencereyi neden göremiyorum?

 
hini #:
Katalog hala Rusça ...... Umarım kataloğun ve dosya isimlerinin İngilizce olarak KIB PROJECTS ....... şeklinde olması mümkün olur. Bu benden küçük bir istek!
Elbette, kodobase'e yüklemeden önce katalogları İngilizce'ye çevireceğim. Sadece henüz zamanım olmadı. Bu genel test için bir ara sürümdür.
 
hini #:

Demo proje 1, (1) KIB-kaynak v1'e dahil edildi, ancak diyagramda ilişkili pencereyi neden göremiyorum?

Bu çok garip. Şimdi kontrol edeceğim.
 
hini #:

Demo proje 1, (1) KIB-kaynak v1'e dahil edildi, ancak diyagramda ilişkili pencereyi neden göremiyorum?

Montaj kontrol edildi. Demo-proje 1.mqh burada yer almaktadır:

(2) KIB PROJECTS\(6) DEMO PROJECTS\Demo project 1.mqh


 
Kısa bir süre sonra sürümün tam bir dökümünü yapacağım.
 

Dün, yeni sürümü indirdikten sonra, çok çalıştıktan sonra ve duygusal olarak yüksekte olduğum için, yeni işlevselliği tam anlamıyla öven çok olumlu bir yazı yazdım. Böyle bir coşku, katı bir teknik tartışma bağlamında pek uygun değil. Bugün uygulanan çözümlere sakin ve tarafsız bir şekilde bakmak istiyorum. Yapıcı eleştirileri ve objektif değerlendirmeleri memnuniyetle karşılayacağım. Üçüncü taraf kullanıcıların bakış açısını netleştirmek benim için önemli. Geri bildirim, ayarlamalar ve iyileştirmeler yapmama yardımcı olacaktır. Ve elbette, hataları tespit etmek ve düzeltmek için.

 
Şimdi sürümün dökümüne geçelim.
 
Önemli bilgilerin daha uzun süre göz önünde kalması için yeni bir sayfadan başlayacağım.
 


Görev, kullanıcı kodunun programın grafik arayüzü ile programatik etkileşimini uygulamak olarak belirlenmiştir.

Fikre göre:

  • KIB kodunu yazdıktan ve hata ayıkladıktan sonra, kullanıcı istediği sonucu alır (hazır pencereler şeklinde) ve projeyi kaydeder.
  • Oluşturma sonucunda iki dosya vardır: teknik UIDATA.mqh ve "API.mqh". Birincisi arayüzün yüklenmesi ve çalışması için, ikincisi ise elemanların olaylarını sabitlemek için gereklidir.
  • Kullanıcı her iki dosyayı da Dosyalar klasöründen projesine aktarır (şu anda: KIB PROJECTS\(5) USER PROJECTS\Project 1).
  • Uzman Danışmanınızı veya göstergenizi motoru ve her iki dosyayı birbirine bağlayan çizgilerle derler:
//+------------------------------------------------------------------+
#include<(1)  KIB 1.0\(4) CONNECTIONS\KIB-DRIVE CONNECTIONS.mqh>
//--------------------------------------------------------------------
#include<(2)  KIB PROJECTS\(5) USER PROJECTS\Project 1\UIDATA.mqh>
//--------------------------------------------------------------------
#include<(2)  KIB PROJECTS\(5) USER PROJECTS\Project 1\API.mqh> 
//+------------------------------------------------------------------+
  • EA'yı grafiğe atar ve arayüzü görür.
EA Shell v1.mq5, bir kullanıcı programını "temsil eden" demo projesinde örnek olarak kullanılır . Kullanıcı analogu için gerekli olan aynı bağlantılara sahiptir .

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

Ancak, bu sürümden önce kullanıcı yalnızca alt anahtarlı bir API dosyasındaki etkileşimli öğelerin olaylarını alabiliyordu.

Şunu vurgulamak önemlidir: kullanıcı, kesinlikle gerekli olan birçok yazılım özelliğine sahip değildi.

Bunları listeleyeceğim:

  • GUI pencerelerini programlı olarak açın/kapatın.
  • Farklı eleman türlerinin parametresindeki değerleri alın/ayarlayın.
  • Öğelerin durumlarını programlı olarak değiştirin: örneğin, kullanıcı eylemlerinde veya çalışan Uzman Danışman / gösterge tarafından sabitlenen harici olaylarda öğeleri açın / kapatın, kilitleyin / kilidiniaçın.
  • Eleman özelliklerinin diğer değerlerini programlı olarak alın/ayarlayın: taban, metin, çerçeve rengi. Simgeyi değiştirin.


Bu güncelleme, belirlenen görevlerin neredeyse tamamını çözüyor.



Bunları listeleyeyim:.
  • Kullanıcı program çağrısı ile GUI pencerelerini açıp kapatabilir.
  • Kullanıcı, parametresi olan öğelerin parametresindeki değerleri alabilir/ayarlayabilir. Tablo hücreleri (CELL) ve parametreli metin etiketleri (VALUE) gibi etkileşimli olmayan öğeler dahil.
  • Farklı eleman türlerinin iki ve dört durumu arasında program geçişi uygulanmaktadır. Düğmeler ve onay kutuları için dört yazılım anahtarlama durumu mevcuttur (açık/kapalı/kilitli açık/kilitli kapalı), diğer elemanlar için - iki (kilitli/kilitsiz).
  • Program dönüş/set değerleri için küçük bireysel eleman özellikleri kümeleri mevcuttur. Her bir küme, intellisense listesi ile açılan bir önek ile temsil edilir. Benzer özelliklere sahip küçük, ilgili bir eleman grubunu genelleştirir. Bu yaklaşım, farklı eleman türlerinin çok sayıdaki özelliklerinde karışıklığı ortadan kaldırır.
  • Bir parametreye programlı olarak bir değer ayarlamak, olayı API dosyasındaki öğenin konumuna gönderir ve burada kullanıcı bunu işlemek için ek kod yazabilir.
  • Tablo hücreleri, satır ve sütun adları katlanarak otomatik olarak adlandırılır. UIDATA.mqh dosyasında bir ad ve işlevsel sarmalayıcı alırlar. Ancak, etkileşimli öğeler olmadıkları için API dosyasında bulunmazlar. Pencere elemanları listesinde bulunabilirler ve diğer tüm elemanlar gibi yazılım kontrolüne yanıt verirler.


Program kontrolü olanakları sayesinde, daha önce mevcut olmayan şeyler gerçekleştirilebilmektedir:

1. Değer gönderimi. Bir elemanın değerinin alınması ve aynı veya başka bir penceredeki diğer elemanlara iletilmesi.

2. Uyarı ve diyalog pencerelerinin yazılımla açılması. Örneğin, bir kullanıcıya acil bir mesaj veya bir öneri göstermenin gerekli olduğu bir durumda.

3. Eleman parametrelerinin sorgulanması yoluyla ayarların ve yürütme durumunun genel bir resminin elde edilmesi. Diğer program parametrelerinin analizleri için tamamlayıcı olarak kullanılabilir.

4. İş sürecini kesintiye uğratmadan program ayarlarının dinamik olarak sıfırlanması.

5. Tabanların, metinlerin ve çerçevelerin (henüz çerçeve yok) renklerini değiştirme olanakları sayesinde arayüz daha etkileşimli ve bilgilendirici hale geliyor. Örneğin, bir değeri geri sardığınızda ve risk bölgesine girdiğinde, düğmeli giriş alanı, tabanının veya metninin kırmızı rengiyle kullanıcıya tehlike hakkında sinyal verebilir. Bunu uygulamak artık çok kolay. Aynı şey kaydırma çubuğu için de geçerlidir. Tehlikeli değerler bölgesinde, çubuğun rengini programlı olarak değiştirebilirsiniz. Etkileşimli, bilgilendirici ve pratik olduğu ortaya çıkıyor.


Şu anda gelecekteki tüm olasılıkların tam olarak farkına varmadım ve eminim daha gelecek çok şey var.


Şimdi, yeni sürümü kırmanın pratik kısmına geçelim.