Şu anda kütüphane grafikteki bir panel için özelleştirilmiştir.
Eğer 2 panel eklemeye çalışırsanız, olaylar yanlış yakalanıyor - elemanlar aynı Id'ye sahip ve üst Id kontrol edilmiyor.
Test etmek için, demo Controls.mq5'i aldım ve paneli çoğalttım - tüm olaylar, olmamaları gerektiği halde her iki panele de çoğaltıldı.
CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))yerine
ObjCAppDialog.Create(chart,name,subwin,x1,y1,x2,y2))gibi bir şey kullanabilir miyiz?
"Ekran panelini doldurma" öğesinde ? gibi bir şey kullanmak yerine ?
İyi günler, belki bana ne yapacağımı söyleyebilirsiniz.
Örneğiniz ekspert Kontrolleri.
Farklı bir döneme geçildiğinde uzman boşaltılıyor, OnDeinit() içinde ExtDialog.Destroy(reason); kaldırmayı denedim.
Diğer dönemlere geçerken diyalog penceresinin çalışmaya devam etmesi için ne yapmam gerektiğini söyleyebilir misiniz?
- www.mql5.com
İyi günler, belki bana ne yapacağımı söyleyebilirsiniz.
Örneğiniz bir Uzman Danışman Kontrolleridir.
Başka bir döneme geçerken Uzman Danışman boşaltılır, ExtDialog.Destroy(reason); OnDeinit() içinde kaldırmaya çalıştım.
Diğer dönemlere geçerken diyalog penceresinin çalışmaya devam etmesi için ne yapmam gerektiğini söyleyebilir misiniz?
IMHO, kütüphaneleri elle oluşturmanın, nerede ve nasıl kullanılacağını bilmenin veya bir şey yanlışsa düzeltmenin daha kolay olduğunu düşünüyorum.
Standart sınıfları kullanmadan bir panel yazma örneği: VirtualTradePad PositionsStyle
Bir sınıf oluşturmak için MQL5 Sih irbazını kullanmanın neden derlenmeyen bir kod ürettiği merak edilebilir:

Makalede belirtildiği gibi, bu kod satırını manuel olarak eklemeniz gerekir, bu, kodlayıcı olmayanlar için tasarlanmış bir Sihirbaz için biraz gariptir
#include <Controls\Dialog.mqh>Ayrıca:
This article will demonstrate how easy it is to create your own display panels in a separate chart subwindow using the Standard Library classes.
Bence bu bir şaka, değil mi?
- 2011.01.11
- MetaQuotes Software Corp.
- www.mql5.com
"Kodlayıcı olmayanlar için tasarlanmış bir Sihirbaz için bu biraz garip."
Bu sihirbazın kodlayıcı olmayanlar için olduğunu düşünmüyorum.
Bu size (acemi programcı) bir şeyler yaratmak için gerekli ilk adımları attırabilir.
MQL5 çerçevesi çok fazla potansiyel sunuyor ve bunların bir kısmı sihirbaz yaratımlarıyla keşfedilebilir
ancak bu örnek gibi daha karmaşık bir şey elde etmek için her zaman programlamanın temellerine ihtiyacınız olacağını düşünüyorum.
Ancak, bir temel sınıftan türetiyorsanız bariz şeyleri dahil etmenin gerekli olması gerektiğine katılıyorum...
" Kodlayıcı olmayanlar için tasarlanmış bir Sihirbaz için bu biraz garip."
Bu sihirbazın kodlayıcı olmayanlar için olduğunu düşünmüyorum.
Bu size (acemi programcı) bir şeyler yaratmak için gerekli ilk adımları attırabilir.
MQL5 çerçevesi çok fazla potansiyel sunuyor ve bunların bir kısmı sihirbaz yaratımlarıyla keşfedilebilir
ancak bu örnek gibi daha karmaşık bir şey elde etmek için her zaman programlamanın temellerine ihtiyacınız olacağını düşünüyorum.
Ancak, bir temel sınıftan türetiyorsanız, bariz şeyleri dahil etmenin gerekli olması gerektiğine katılıyorum ...
Muhtemelen haklısınız, ancak MQL5 Wizard 'ın öncelikle kodlayıcı olmayanlar için tasarlandığını sanıyordum. Her neyse, sorun burada bir hata gibi, çünkü Sihirbaz tarafından oluşturulan kodu derlemek için manuel olarak kod eklemeniz gerekiyor.
- 2011.01.11
- MetaQuotes Software Corp.
- www.mql5.com
Kullanıcı GUI'leri (paneller) kütüphanesinde bence oldukça başarılı olmayan olay modelinin kopyalandığını fark ettim:
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { ... }
İlk olarak, tüm olaylar int, long, double ve string'e karşılık gelen bir dizi değişkene sahip değildir. Bir yerde olayı tanımlayan daha fazla değişken olabilir, bir yerde daha az, bir yerde önerilen temel tiplerle örtüşmezler. Aslında, int -> bool, string -> int, double -> int, vb. gibi sürekli dönüşümler görüyoruz. Ve eğer prosedürel programlama açısından pratikte yapabileceğiniz hiçbir şey yoksa (çünkü her varsayımsal durum için 1 000 000 aşırı yüklenmiş fonksiyon yaratmayacaksınız), o zaman OOP çerçevesinde her şey çok daha kolay ve daha zarif yapılabilir.
Ancak OnEvent'in temel sorunu, bu olay işleyicinin grafikten alınan olayları ele almak için tasarlanmış olmasıdır, oysa olay yeni bir pozisyon açmak veya kotasyonları değiştirmek gibi herhangi bir şey olabilir. Genel olarak, OnEvent(...) bir şekilde evrensel bir olay işleyicisi gibi görünmüyor, IMHO. Belki de geliştiriciler bir şekilde mevcut CWnd temelinde kendi olaylarını ele almayı başardılar, ancak benim için standart panel kütüphanesini kullanmak hala sorunlu.
- 2010.11.10
- Samuel
- www.mql5.com
Teşekkürler, inceledim, faydalı! Birkaç dakika: panellerin VS'deki gibi form yapıcıda birleştirilebilmesi için bir tür yapıcı oluşturma planları var mı? çünkü her şeyi elle saymak pek uygun değil, belki de profesyonelliğin bir işaretidir, ancak uzun zaman alıyor)).
makrolarla açıkça aşırıya kaçmışlar ...
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Yeni makale MQL5'te Kendi Grafik Panellerinizi Oluşturun yayınlandı:
MQL5 programının kullanılabilirliği hem zengin fonksiyonu hem de ayrıntılı bir grafik kullanıcı arayüzü ile belirlenir. Görsel algı bazen hızlı ve istikrarlı çalışmadan daha önemlidir. Standart Kitaplık sınıfları temelinde kendi başınıza ekran panelleri oluşturmanız için adım adım bir kılavuzu aşağıda bulabilirsiniz.
Önce şartları tanımlayalım. Ekran paneli, çizim tamponu olmayan ayrı bir pencere özel ekranını tanımlamak için kullanacağımız bir terimdir. Bu tür bir panel, Terminale gömülü grafik nesneleri kullanarak gerekli bilgileri görüntüler. Bilgiler görüntülenebilir:
Gereken her adıma ayrıntılı bir göz atacağız ve aşağıdaki gibi bir grafik panel oluşturacağız:
Yazar: MetaQuotes