Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Pyotr, seni anlamıyorum.
Sorulara cevap vermediniz. Programcıların çalışırken GUI ile nasıl etkileşime gireceklerini bilmeleri önemlidir. İşte GUI'mden bir örnek. Açık/koyu tema kısayoluna tıkladım ve bu olay hemen arka plan renklerini ve çizgilerini değiştirme işlevini tetikledi. Bu etkileşimi nasıl yapıyorsunuz?
" Kullanıcı kodumla (hiç) etkileşime gir meyecek . " ne anlama geliyor? Programcının kodla değil, kodun oluşturması gereken olaylarla etkileşime girmesi gerekir.
Güzel. Anlaşılır olması için sadece resim kullanmaya çalışacağım.
1.
2.
3.
4.
Seçenekler sayfamız ve penceredeki onay kutusu ve Internal_API dosyası:
5. Kullanıcı kodundaki pencere ve öğeler üzerinde eylemler gerçekleştirme:
6.
INTELLISENSE BİZE HER ŞEYİ ANLATIR!!!
Örnek olarak web geliştirmeyi kullanarak farklı bir soru sormaya çalışacağım. Çünkü GUI'niz oluşturduğunuz işaretleme dili kullanılarak yazılır.
Web geliştirmenin de kendi işaretleme dili (HTML) ve stil dili (CSS) vardır. Eğer sadece HTML ile bir web sitesi oluşturduysanız, kontrolleri saf html ile oluşturabilirsiniz.
Ancak bu durumda site ölü olacaktır, çünkü kontroller çalışırken hiçbir şey olmayacaktır. Bir şeylerin olmasını sağlamak için, JavaScript ve addEventListener işlevini kullanarak her olay için bir işleyici koymanız gerekir İşte böyle bir işleyiciörneği: https:/ /www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Ana sorum yeniden ifade edilebilir: Kullanıcı çalışırken GUI tarafından oluşturulan olay işleyicisini programcı için nasıl uygularsınız?
Yani addEventListener 'ın analogu nedir? Dediğim gibi, GUI programatik olarak oluşturulduğunda, her kontrolün birfonksiyona bir işaretçi kullanılarak kendi olay işleyici fonksiyonuna atanması gerçeğiyle uyguladım.
TAMAM.
Örnek olarak web geliştirmeyi kullanarak farklı bir soru sormaya çalışacağım. Çünkü GUI'niz oluşturduğunuz işaretleme dili kullanılarak yazılır.
Web geliştirmenin de kendi işaretleme dili (HTML) ve stil dili (CSS) vardır. Eğer sadece HTML ile bir web sitesi oluşturduysanız, kontrolleri saf html ile oluşturabilirsiniz.
Ancak bu durumda site ölü olacaktır, çünkü kontroller çalışırken hiçbir şey olmayacaktır. Bir şeylerin olmasını sağlamak için, JavaScript ve addEventListener işlevini kullanarak her olay için bir işleyici koymanız gerekir İşte böyle bir işleyiciörneği: https:/ /www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Ana sorum yeniden ifade edilebilir: Kullanıcı çalışırken GUI tarafından oluşturulan olay işleyicisini programcı için nasıl uygularsınız?
Yani addEventListener için analogunuz nedir? Dediğim gibi, GUI programlı olarak oluşturulduğunda, her kontrolünişleve bir işaretçi kullanılarak kendi olay işleyici işlevine atanması gerçeğiyle uyguladım.
Nicholas, her şey çalışıyor. Daha sonra kendiniz deneyeceksiniz. Her şey düşündüğünüzden çok daha basit. Bu teknolojiyi kullanarak birçok çalışan arayüz yaptım. Yani... Yakında göreceksin.
Nikolai, çalışıyor. Sonra kendin denersin. Düşündüğünden çok daha basit. Bu teknolojiyi kullanarak birçok çalışan arayüz yaptım. Yani... Yakında göreceksin.
Tamam. Bekliyorum. Bekliyor olacağım.
Bununla birlikte, örnekle anlamayı kolaylaştırmak için, lütfen GUI'nizin ayrı bir düğme şeklinde bağlandığı basit bir boş gösterge (veya Uzman Danışman) oluşturun, bastığınızda pencerenin arka plan rengi siyahtan beyaza ve beyazdan siyaha değişir. Renk değişikliğinin bağlı dosyalardan birinde değil, yalnızca gösterge gövdesinde gerçekleşmesi arzu edilir.
Çünkü programcı gerçekten kodunuza girmemelidir. Yazım kolaylığı için burada, düğmeye basıldığında program gövdesinde çalıştırılması gereken işlevin kodu verilmiştir:
Tamam. Bekleyeceğim. Bekleyeceğim.
Bununla birlikte, örnekle anlamayı kolaylaştırmak için, lütfen GUI'nizin ayrı bir düğme şeklinde bağlandığı basit bir boş gösterge (veya Uzman Danışman) oluşturun, bastığınızda pencerenin arka plan rengi siyahtan beyaza ve beyazdan siyaha değişir. Renk değişikliğinin bağlı dosyalardan birinde değil, yalnızca gösterge gövdesinde gerçekleşmesi arzu edilir.
Çünkü programcı gerçekten kodunuza girmemelidir. Yazım kolaylığı için burada, düğmeye basıldığında program gövdesinde çalıştırılması gereken işlevin kodu verilmiştir:
Tamam. Anlaşılması için mümkün olan en basit uygulamayı yapacağım. Fırfırlar yok).
Tamam. Anlaşılması için mümkün olan en basit uygulamayı yapacağım. Gösterişsiz).
Harika! Teşekkür ederim.
Nikolay, gösterge gövdesinin içine bir işlev çağrısı yazamıyorum, çünkü işleyicisi Internal_API.mqh dosyasının içinde.
Yani, bu dosyadaki işleyicisinden düğmeye basma olayında işlevinizi çağırabilirim. Bununla birlikte, örneğin zamanlayıcı olayında düğme durumlarını gösterge gövdesinden programlı olarak ayarlayabilirim. Ama o zaman butona basmama gerek kalmıyor. Kısacası, farklı unsurlar var. Bazıları gösterge gövdesi içinde ele alınabilir (çoğunlukla etkileşimli olmayan öğeler, örneğin ilerleme çubuğu gibi) ve Internal_API.mqh dosyasında bir işleyiciye sahip olan ve oradan çalışanlar vardır. Durumları EA/gösterge gövdesinden programlı olarak ayarlanabilmesine rağmen.
Göreviniz tamamlandı. (beyaz kare ise - tıklayın)
Kod:
Derleyici küfrettiği için fonksiyonunuzu yorumladım. Daha basit hale getirdim.
İşte Internal_API.mqh dosyasındaki kod
Bu arada, eklemelisiniz:
Internal_API.mqh dosyası kontrol işleyicileri içerir ve ÖZEL olarak bunları bağlamak için tasarlanmıştır.
Bu dosya kullanıcı için tasarlanmıştır ve motorun veya diğer kodlarımın bir parçası değildir.
Bu dosya kullanıcıya yöneliktir ve motorun ya da diğer kodlarımın bir parçası değildir.
Anlıyorum, Peter.
Teşekkürler. Elbette bir geliştirici için uygun değil.
Çok fazla gereksiz kod ve hareket var. Yine de, bir işleve işaretçi içeren varyant çok daha iyi.