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

 

Anlaşıldığı üzere, demonun pratik kısmı oldukça kapsamlı ve kapsamı zaman alacak. Yeni özellikleri ayrıntılı ve erişilebilir bir şekilde, yorumlar, resimler ve giflerle anlatacağım ve göstereceğim. Sunumu bugün ve yarın olmak üzere iki güne bölmek zorunda kalabilirim. Sorun değil, anlayışınız gelişecektir. Siz de biraz dinlenmelisiniz.


Motorun yeni sürümünün işlevselliğini ayrıştırma planı:

1. Yeni klasörlerin ve dosyaların ME'ye öncekilerin tamamen silinmesinden sonra yüklenmesi gerektiğini hatırlatırım. Değiştirme yapmaya gerek yoktur.

2. Çalışmak için (1) EA Shell v1.mq5 ve API.mqh dosyalarını açmamız gerekiyor . Diğer dosyaları açmaya gerek yoktur. Demo projesi 1.mqh' deki aynı arayüzü ve tanıdık pencereleri kullanacağız . İlk dosya Experts klasöründe olmalı (zaten orada olduğunu düşünüyorum) ve ikincisi burada bulunabilir:



Bu klasördeki UIDATA.mqh ve API.mqh dosyaları zaten ihtiyacınız olan her şeyi içeriyor. Yapıcıda yeni dosyalar oluşturmaya gerek yoktur.


3. Ana çalışma (1) EA Shell v1.mq5 dosyasında, _OnInit() ve _OnTimer fonksiyonlarında gerçekleşecek, ancak bazen API. mqh dosyasına bakacağız . Merak ediyorsanız, UIDATA.mqh dosyasını açabilir ve pencere ve eleman sarmalayıcı işlevlerinin neye benzediğini görebilirsiniz. En altta yazdırılırlar. Aksi takdirde, bu dosya iş için gerekli değildir ve kapatılabilir.


Ele alacağımız konular şunlardır:

1. intellisense listesinde gezinme ve doğru pencere fonksiyonunu seçme.

2. Pencereleri programlı olarak açma ve kapatma.

3. Intellisense listesinde yönlendirme ve doğru pencerede doğru özelliği seçme.

4. Bireysel eleman özelliklerinin listelerinde gezinme.

5. Eleman ve pencere sarmalayıcı işlevinin adını ayrıştırma.

6. Seçilen bir elemanın parametre değerini kendi türündeki bir değişkene döndürme. Birkaç farklı elemanın üç tipini düşünün.

7. Farklı eleman türlerinin parametrelerine değer ayarlama. Değerlerin bu elemanların arayüz pencerelerinde nasıl görüneceğini görelim.

8. Bir elemanın parametre değerlerini döndürmek, bu değeri değiştirmek ve başka bir elemanailetmek. Farklı tipte elemanlar ve değerler düşünün ve farklı tipteki elemanlar arasındaki iletimi farklı pencerelerde test edin.

9. Önceki değeri döndürme (_V_LAST). Son değerin ne zaman ve hangi durumlar için gerekli olduğu (mevcut değerle karıştırılmamalıdır).

10. Farklı eleman türleri için ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK durumlarının ayarını test edin.

11. Farklı türlerdeki öğelerin değer değişikliklerini birbirine bağlamayı ve senkronize etmeyi deneyelim: örneğin, düğmeler ve kaydırıcı ile giriş alanı. Bir elemanın (manuel veya yazılım) değeri değiştiğinde, ikinci elemandaki değerin de buna uygun olarak değiştiğini varsayalım.

12. Kaydırıcının ve düğmeli giriş alanının aralık sınırlarını sarmalayıcı işlevler aracılığıyla programlı olarak sıfırlamayı deneyelim. Bunu test edecek zamanım olmadı ama içimden bir ses çalışacağını söylüyor. Yine de bir bakalım.

13. Sarmalayıcı fonksiyonlar aracılığıyla eleman durumlarını döndürmeyi deneyelim. İşlevselliğe dahil edildi, ancak test etmek için zamanım olmadı. Göreceğiz bakalım... Sonuç bilinmiyor.

14. Metin ve eleman tabanları için renkleri alalım ve ayarlayalım. Bu renkleri bazı basit olaylar veya değer sınırları ile ilişkilendirmeyi deneyebiliriz.

15. Size yeni API dosyası çıktısında nasıl gezineceğiniz ve okuyacağınız hakkında daha fazla bilgi vereceğim.


Şimdilik bu kadar, ancak ilerledikçe eklemeler yapmak mümkün.

 

Yukarıda bahsedilen konuları ele almaya başlayalım.

1. intellisense listesinde yönlendirme ve gerekli pencerenin işlevini seçme:

w_ yazın, bu projenin UI pencerelerinin işlevlerininbir listesi görünür.


2- intellisense listesinde yönlendirme ve seçilen pencereden istenen özelliği seçme:

Bir pencere seçtikten sonra numarasına bakıyoruz.

w'den sonraki tire işaretini silip numarasını yazdırıyoruz.

Bu, o pencere içindeki tüm etkileşimlerin listesi için önektir:


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

Gif, bu işlemin kolaylığını ve dinamizmini göstermektedir:



Şimdi de GUI pencerelerini açıp kapatmaya bakalım.

 

3. Pencereleri açma ve kapatma:

  • Bir pencere açmak içinintellisense listesinden adını seçmeniz ve noktalı virgül ile parantez eklemeniz gerekir.Çağrının içine hiçbir şey koymayın.

  • Bir pencereyi kapatmak için aynı şeyi yapmanız, ancak parantez içine 0 koymanız gerekir .



İşlem sırasında bu şekilde görünüyor:





Konulara yarın taze bir enerjiyle devam edeceğiz.

 
dikişsiz
 

选择窗口后,我们查看其编号。

w'den sonraki tire işaretini siler ve numarasını yazdırırız.

Bu, o pencere içindeki tüm etkileşim listelerinin önekidir:

p1~p7 nedir? Buldum.

 
GUI henüz test cihazında çalışmıyor
 
hini #:

p1~p7 nedir? Anladım. Bu bir nitelik.

Sarmalayıcı işlevinin değerlerini döndürmek ve ayarlamak için kullanılabilen tek tek öğe özelliklerinin bir listesini açmak için bir önektir.


 
hini #:
GUI henüz test cihazında çalışmıyor.
Bu konuyu henüz araştırmadım, zamanım olmadı. Temel işlevselliği yazmayı bitirdikten sonra, bir şeyler yapmanın mümkün olup olmadığını göreceğim.
 
Реter Konow #:
Henüz buna bakmadım çünkü zamanım olmadı. Temel işlevselliği yazmayı bitirdiğimde, bu konuda bir şeyler yapmanın mümkün olup olmadığını göreceğim.
Çünkü test cihazında OnChartEvent'i çağırmıyor
 
Bir sonraki konuya geçelim ve tek tek öğe özelliklerinin listelerine bakalım.