MQL5'te OOP hakkında sorular - sayfa 15

 
Vasiliy Pushkaryov :

Yanlış bilgilendirme için özür dilerim, daha önce bir alt sınıfta Create() metodunu çağırmanın imkansız olduğunu yazmıştım.

Şimdi kontrol ettim, mümkün. Ancak özel üye m_button'a erişim mümkün değildi. Onlar. örneğin, düğmenin durumunu kontrol etmek imkansızdı: basıldı / bırakıldı.

Igor'un ipucuyla artık mümkün.

düğmelerde sorun yok, hatırlamıyorum, ancak bu sınıfın hazır yöntemleri (alanlar değil) vardı - durumu belirlemek için, değilse, IsActive() veya PropFlags() veya StateFlags()'ı kontrol edin - orada şimdi düğmede ne olduğunu bulmaya tam olarak ne hazırdı

Pekala, size MQL'deki grafiklerle ikinci hack'i anlatacağım - düğmenin adını ( Name() ) bulabilir ve düğmenin adıyla bulabilir ve durumu ObjectGetInteger() ve diğer işlevler aracılığıyla alabilirsiniz, ancak bunu "beceriksizce" yapmamak için - ObjectGetInteger() aracılığıyla özellikleri elde etmek için sınıfınıza kendi yönteminizi yazın


vay! ;)

Not: Ben de SB'den muzdariptim - panel daraltıldıktan ve panel genişletildikten sonra onay kutularının neden seçili olduğunu bulamadım - sanki fare tıklaması nesnenin üzerindeymiş gibi. () onay kutularım için nesne özelliğinin seçimini kaldırın

 
Igor Makanu :

düğmelerde sorun yok, hatırlamıyorum, ancak bu sınıfın hazır yöntemleri (alanlar değil) vardı - durumu belirlemek için, değilse, IsActive() veya PropFlags() veya StateFlags()'ı kontrol edin - orada şimdi düğmede ne olduğunu bulmaya tam olarak ne hazırdı

Pekala, size MQL'deki grafiklerle ikinci hack'i anlatacağım - düğmenin adını ( Name() ) bulabilir ve düğmenin adıyla bulabilir ve durumu ObjectGetInteger() ve diğer işlevler aracılığıyla alabilirsiniz, ancak bunu "beceriksizce" yapmamak için - ObjectGetInteger() aracılığıyla özellikleri elde etmek için sınıfınıza kendi yönteminizi yazın

vay! ;)

Not: Ben de SB'den muzdariptim - panel daraltıldıktan ve panel genişletildikten sonra onay kutularının neden seçili olduğunu bulamadım - sanki fare tıklaması nesnenin üzerindeymiş gibi. () onay kutularım için nesne özelliğinin seçimini kaldırın

Ben de bununla karşılaştım. Güvenlik Konseyi'nin diyalog panelini kendi renklerinize boyamak gerekiyordu. Ayrıca özel bölümde gizlendiler. Panelleri doğrudan ObjectGetInteger() aracılığıyla boyayan bir yöntemle çıktı. Ayrıca katlanıp açıldıktan sonra bir sıkıntı oldu.

İlk çökmeden önce başlık şu şekilde görünür:


ve sonra


Varsayılan rengin neden daha sonra kapat ve simge durumuna küçült düğmelerine döndürüldüğünü, Güvenlik Konseyi'nin vahşi doğasında da bulamadım.

 
Vasiliy Pushkaryov :

Ben de bununla karşılaştım. SB'den diyalog panelini kendi renklerinizle boyamak gerekiyordu. Ayrıca özel bölümde gizlendiler. Panelleri doğrudan ObjectGetInteger () aracılığıyla boyayan bir yöntemle çıktı. Ayrıca katlanıp açıldıktan sonra bir sıkıntı oldu.

İlk çökmeden önce başlık şu şekilde görünür:


ve sonra


Varsayılan rengin neden daha sonra kapat ve simge durumuna küçült düğmelerine döndürüldüğünü, Güvenlik Konseyi'nin vahşi doğasında da bulamadım.

Bir kez daha yerel std'ye baktım ve kendi kütüphanemi yazma kararının doğru olduğundan emin oldum)))
 
Vladimir Simakov :
Bir kez daha yerel std'ye baktım ve kendi kütüphanemi yazma kararının doğru olduğundan emin oldum)))

Burada düğmelerle bir an yazdım, oradan bir alıntı:

Düğmeye yavaşça, saniyede bir kez bastığınız sürece, her şey yolunda gidiyor. Biraz daha hızlı basmaya başlıyorum ve olay çoğu zaman engellenmiyor.

Kitaplığınızda böyle sorunlar fark ettiniz mi? Bunun Güvenlik Konseyi'nin uygulaması mı yoksa olay işleme mimarisi mi olduğunu bilmek istiyorum ve artık bunun üstesinden gelemiyor musunuz?

 
Vasiliy Pushkaryov :

... Bunun Güvenlik Konseyi'nin uygulaması mı yoksa olay işleme mimarisi mi olduğunu bilmek istiyorum ve artık bunun üstesinden gelemiyor musunuz?

Kütüphaneyi kullanmadan bağımsız olarak grafiksel bir nesne olarak bir düğme oluşturabilir ve çalışmasını kütüphane aracılığıyla oluşturulan düğme ile karşılaştırabilirsiniz.

 
Dmitry Fedoseev :

Kütüphaneyi kullanmadan bağımsız olarak grafiksel bir nesne olarak bir düğme oluşturabilir ve çalışmasını kütüphane aracılığıyla oluşturulan düğme ile karşılaştırabilirsiniz.

Fikir için teşekkürler, hemen deneyeceğim.
 
Vasiliy Pushkaryov :

Burada düğmelerle bir an yazdım, oradan bir alıntı:

Kitaplığınızda böyle sorunlar fark ettiniz mi? Bunun Güvenlik Konseyi'nin uygulaması mı yoksa olay işleme mimarisi mi olduğunu bilmek istiyorum ve artık bunun üstesinden gelemiyor musunuz?

Kendiniz için yazarsanız (Market'te değil), C#'da düğmeler içeren pencereler yapmak ve C#'da MQL .dll'den çağrı yapmak daha kolaydır - düğmeler, pencereler, onay kutuları vb. ile herhangi bir fantezi. yarım saat içinde - C #'da bir saat uygulanır, ancak bir hafta boyunca materyali google'da aramak zorunda kaldım

konuya göre, terminalin tesliminden alınan paneli temel alın, klasörde göstergeler var gibi görünüyordu ve buna dayanarak arayüzünüzü çok daha hızlı hale getireceksiniz, ama yine de deneyimlerime göre karar verdim - anladım

Not: evet hatırladım, kod tabanında basit bir panel paylaştım, buton yok ama metin etiketleri var ve kod benim için olabildiğince basit https://www.mql5.com/ru/code /25897

 
Dmitry Fedoseev :

Kütüphaneyi kullanmadan bağımsız olarak grafiksel bir nesne olarak bir düğme oluşturabilir ve çalışmasını kütüphane aracılığıyla oluşturulan düğme ile karşılaştırabilirsiniz.

Evet eski bir çalışmadan aldım, SB ile çalışmadığım zamanlarda kapat butonu gibi yaptım. Hızlı çalışır:


SB'nin uygulanmasındaki sorun ortaya çıkıyor.

 
Vasiliy Pushkaryov :

Evet eski bir çalışmadan aldım, SB ile çalışmadığım zamanlarda kapat butonu gibi yaptım. Hızlı çalışır:


SB'nin uygulanmasındaki sorun ortaya çıkıyor.

Standart kitaplık , kontrollerin form üzerinde oluşturulduğu anlamına gelir. Sadece hiç çalışmıyor gibi görünüyorlar. En azından eskiden böyleydi.

 
Igor Makanu :

Kendiniz için yazarsanız (Market'te değil), C#'da düğmeler içeren pencereler yapmak ve C#'da MQL .dll'den çağrı yapmak daha kolaydır - düğmeler, pencereler, onay kutuları vb. ile herhangi bir fantezi. yarım saat içinde - C #'da bir saat uygulanır, ancak bir hafta boyunca materyali google'da aramak zorunda kaldım

konuya göre, terminalin tesliminden alınan paneli temel alın, klasörde göstergeler var gibi görünüyordu ve buna dayanarak arayüzünüzü çok daha hızlı hale getireceksiniz, ama yine de deneyimlerime göre karar verdim - anladım

Not: evet hatırladım, kod tabanında basit bir panel paylaştım, buton yok ama metin etiketleri var ve kod benim için olabildiğince basit https://www.mql5.com/ru/code /25897

Hayır, C# bilmiyorum.

Tahtaya bir göz atacağım, teşekkürler.