"MQL5 Tarif Defteri Gösterge Alt Pencere Kontrolleri - Düğmeler" makalesi için tartışma - sayfa 7
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
Makalenizin mükemmel olduğundan bu kadar emin misiniz?
Okuduğunuz için çok memnun oldum.
Tüm soruları uygun başlıkta yanıtlamaktan mutluluk duyacağım.
===
Gereksiz yanlış anlamalar olmasın diye söylüyorum, Anatoly'ye karşı hiçbir şeyim yok! Makale için kendisine tebrikler! Ancak sorulara cevap vermek gerekiyor...
Affedersiniz, sizi başka bir eğitim veya tarif yazmaktan alıkoyuyor olabilir miyim?
Değilse, gösterge alt penceresindeki kontrol hakkındaki makalenizi tartışmaya devam edelim. Yani, bir göstergede nasıl kullanışlı bir menü yapılacağına dair toplu bir çözüm (veya bir fikir) sunuyorsunuz. Güzel, makalenin amacı çok değerli! Ancak "yeni başlayan" bir programcı tüm bu cephaneliği nasıl kullanabilir? Özel fonksiyonlar nereye yerleştirilir? Örnekle gösterin. Ve aynı zamanda, örneğin 5 düğme kullanmak için kodda neleri düzeltmeniz gerektiğini açıklayın? Bunu bir acemi sorusu olarak düşünün.
Hayır, değilsin. Henüz bir şey yazmıyorum. Yılda en az bir gün dinlenmem gerekiyor. Sadece dinlenmek ilginç değildir, özellikle de uzun bir süre için. )
Bu kitlesel bir karar değil ve ben de bu konuda yazmadım. Olmamış bir şeyi olmuş gibi göstermeyelim. Bunun evrensel bir çözüm değil, özel bir durum olduğu zaten tartışmanın başında dile getirildi. Bence yeni başlayan birinin pratik yapması için iyi bir örnek. Ve hazır bir çözümü bedavaya alıp, ağzı açık, geniş bir gülümsemeyle güneşi karşılamak için koşmak değil. ) Anlıyor musunuz? Programlama öğrenmenin en başında böyle basit ve net bir örnek isterdim. Özellikle de bu hayatınızdaki ilk programlama diliyse ve ondan önce tüm hayatınızın faaliyeti tamamen farklı bir alandaysa, hiçbir şekilde onunla bağlantılı değilse.
Bu durumda, 5 düğme yapmak için, dizilerin boyutunu değiştirmemiz ve nesne düğmelerinin adları, düğmelerde görüntülenen metin ve düğme durumları için dizileri bildirirken gereksiz öğeleri hariç tutmamız gerekir.
Bir dizi düğme durumu vardır, bu nedenle hangi düğmeye basıldığını kontrol etmek ve yalnızca düğmenin rengini değiştirmek yerine başka (kullanıcı tarafından istenen) bir eylem gerçekleştirmek için aynı ilke kullanılabilir. Bu, örneğin, alım satım işlevleri olabilir (ve sadece değil): bekleyen tüm emirleri silme, tüm pozisyonları kapatma vb. Fikirler sonsuzdur. Ve eğer hiç fikir yoksa, o zaman yanlış türde bir faaliyet seçmişsiniz demektir. )
Bunu uygulamak için, örneğin ENUM_SCRIPT adıyla özel bir numaralandırmanın (bunun da oluşturulması gerekir) tanımlayıcılarıyla başlatılacak başka bir dizi oluşturmanız gerekir. Ve tanımlayıcılar daha sonra çağrılacaktır, örneğin: SCRIPT_01 =0, SCRIPT_02 =2, vb. Ayrıca döngüde, paneldeki düğmenin basılı olup olmadığını kontrol ederken, hangi tanımlayıcının basılı düğmeye bağlı olduğunu ve düğmenin mevcut durumunu belirlemeniz ve ardından ilgili işlevi yürütülmesi için programa aktarmanız gerekecektir.
Bilerek örnek bir kod göstermeyeceğim. Yeni başlayanlar için bir ev ödevi olsun. )
Dediğiniz gibi değişiklikleri yaptım:
Ve ekranda gördüğüm şey bu:
Bunu nasıl düzeltebilirim? (Ben acemiyim)
Dediğiniz gibi değişiklikleri yaptım:
Ve ekranda gördüğüm şey bu:
Bunu nasıl düzeltebilirim? (Ben acemiyim)
Bunun gibi:
Oh, harika! Çalışıyor.
Ama fonksiyonlarımı düğmelere nasıl bağlayacağımı anlamıyorum. Bana bir örnek gösterin.
Oh, harika! Çalışıyor.
Ama fonksiyonlarımı düğmelere nasıl bağlayacağımı anlamıyorum. Bana bir örnek gösterin.
Pekala, sizin başlattığınız "acemi" oyununa devam edelim. )
Hangi noktada takılıp kaldınız? Mevcut noktada nasıl anlaşıldığına dair bir girişim gösterin. Beş tanımlayıcıya sahip bir numaralandırma ve elemanlarına bu tanımlayıcıların atanması gereken bir dizi oluşturun.
Peki şimdi ne yapacağız?
Peki şimdi ne yapacağız?
İhtiyacınız olan dizi türü budur:
//--- Komut Dosyaları ENUM_SCRIPT buttons_scripts[NUMBER_BUTTONS_HEIGHT][NUMBER_BUTTONS_WIDTH]= { {SCRIPT_01,SCRIPT_02,SCRIPT_03,SCRIPT_04,SCRIPT_05} };O zaman bunun gibi bir fonksiyon yazmanız gerekir:
...ve bu fonksiyonu kodun bu kısmına yerleştirin:
Ve sonra gerekirse kodu nasıl optimize edeceğinizi düşünebilirsiniz. :)
Ben böyle yapıyorum.
Başlangıçta izleme özelliği etkin olan program, boşaltma sırasında bunu kapatıyor. Ve grafikte kalan ve izlemeye ihtiyaç duyan program, etkin olup olmadığını kontrol eder ve devre dışı bırakılmışsa etkinleştirir.
İfadelerin belirsizliğini ortadan kaldırmak için önceki sayfadaki yazımdaki Uzman Danışman ve gösterge kodu örnekleri üzerinde varyantınızı vermeniz istenir.
Birinin fare olaylarının izlenmesini devre dışı bırakıp bırakmadığını sürekli kontrol etmeye gerek yoktur. Daha doğrusu, kendinizi herhangi bir durumdan korumak istiyorsanız, kontrol edebilirsiniz, ancak bunun çok fazla olduğunu düşünüyorum.
Belki de geliştiricilere CHART_EVENT_MOUSE_MOVE değiştiğinde CHARTEVENT_CHART_CHANGE oluşturmalarını önermeliyiz? Ardından, Uzman Danışman çalışırken gerekli ayarı zarif bir şekilde geri yüklemek mümkün olacaktır.
Şimdiye kadar bu varyantı aldım:
Bir gösterge yaptım, ancak bir parametre ile: EnableMouseDetect = true ile çalıştır - izlemeyi kontrol eder, false - izleme etkinse sadece olay sayısını yazdırır.
------------------
Şimdi biraz daha düşündüm ve kabul etmek zorundayım - bu seçenek işe yaramayacak. Fareyi izleyen ilk programı çalıştırırsanız (izlemeyi etkinleştirecektir), sonra ikincisini (zaten neyin etkin olduğunu görecektir) ve sonra ilkini silerseniz, izlemeyi devre dışı bırakacak ve ikincisine hiçbir şey kalmayacaktır. Yani, izlemenin gerekli olduğunu bildirmek için bir tür semafor bulmamız gerekiyor.
Ve burada yapılan araştırma ışığında (işlemci üzerindeki yük hakkında) bu tür koltuk değnekleri gerekli değildir.
Bu yüzden önerimi geliştiricilere oylatmayı öneriyorum ve konu kapatılabilir.