
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
B urada zorunlu tür dönüşümü, kullanıcının işlevin dışına (string) yazmak zorunda kalmaması için bir işlevin içine yerleştirilebilir mi
Soruyu tam olarak anlayamadım, bu yüzden cevabım konu dışı olabilir.
Bunu şu şekilde yapabilirsiniz:
double işlevi, değer dönüşü adımında zorunlu bir dönüştürme kullanarak string türünde bir değişkene dönüş yapar.
Daha da basitleştirebilirim:
w7_s_p4_EDIT_Comment_2((string)w6_d_p5_S_EDIT_Spin_the_value());
Teorik olarak, bunu bu şekilde yapabilirsiniz:
w7_s_p4_EDIT_Comment_2(w6_d_p5_S_EDIT_Spin_the_value());
Derleyicinin kendisi double'ı string'e dönüştürür, ancak bunu tavsiye etmek istemem.
Soruyu gerçekten anlamadım, bu yüzden cevabım konu dışı olabilir.
Bunu şu şekilde yapabilirsiniz:
double fonksiyonu, değer döndürme adımında zorunlu dönüştürme ile string tipinde bir değişken döndürür.
Teorik olarak bu yapılabilir:
Derleyicinin kendisi double'ı string'e dönüştürecektir, ancak bunu tavsiye etmiyorum.
Özellikleri ayarlama ve öğeler arasında değer döndürme ve iletme konusuna devam ediyoruz.
Birkaç seçeneğe baktık:
1. Bir metin giriş alanındaki metni ayarlama.
w7_s_p4_EDIT_Comment_1("Some random text");
2. Kaydırıcıya yeni bir değer atandı.
w6_i_p3_H_SLIDER_Roll_the_value(33);
3. Düğmelerle giriş alanı için rastgele bir sayı seçin.
w6_d_p5_S_EDIT_Spin_the_value(423.11);
4. Hesap Bilgisi tablosundaki hücrelere birden fazla metin dizesi gönderdi.
5. Son olarak, S_EDIT öğesinin yeni değerini döndürdük ve iki farklı pencereye gönderdik: Hesap Bilgisi tablosundaki hücre ve Ayarlar penceresindeki metin giriş alanı örnek 2.
double Spin_edit_value = w6_d_p5_S_EDIT_Spin_the_value();//Делаем возврат значения параметра (тип double).
w7_s_p4_EDIT_Comment_2((string)Spin_edit_value);
//---------------------------------------------------------------------------------------------------
Bu konuyu tamamlamak ve bir sonrakine geçmek için birkaç şey yapmamız gerekiyor:
1. Kaydırma çubuğunun rengini değiştirin.
2. S_EDIT tabanının ve metnin rengini değiştirin.
3. Düğmenin basılı ve basılı olmayan durumlarındaki renklerini değiştirin.
4. Zamanlayıcı olayında elemanlara değer göndermeyi kontrol edin.
//---------------------------------------------------------------------------------------------------
1. Kaydırma çubuğunun rengini değiştirin:
Sonuç:
Kaydırma çubuğuna farklı bir renk atayın:
Sonuç:
//---------------------------------------------------------------------------------------------------
2 Metnin rengini ve S_EDIT öğesinin tabanını değiştirin:
Düğmelerle giriş alanının tabanının orijinal rengini alalım:
Günlüğe çıktı verin:
Alanın tabanına farklı bir renk atayın:
Sonuç:
S_EDIT alanının metin renginin ayarlanması (p5 yerine p4 özellik öneki kullanılmıştır, çünkü S_EDIT için metin rengi özelliğini eklemeyi unuttum. hata bir sonraki sürümde düzeltilecektir).
//---------------------------------------------------------------------------------------------------
3. Düğmenin basılı ve basılı olmayan durumlardaki renklerini değiştirin:
Düğmenin nötr durumdaki rengini değiştirin:
Düğmenin etkinleştirilmiş durumu için farklı bir renk ayarlayın:
Düğmenin metin rengini nötr ve basılı durumları için de değiştirebilirsiniz, ancak küçük bir yazı tipinde bu fark edilmez. Bu nedenle farklı bir pencere seçelim:
Sonuç:
Sonuç:
//---------------------------------------------------------------------------------------------------
4. Zamanlayıcı olayında elemanlara değer göndermeyi kontrol edin:
Sonuç:
//------------------------------------------------------------------------------------------------
Bu, bu konuyu tamamlamaktadır.
Daha sonra, konulara geçiyoruz:
9. Önceki değerin geri döndürülmesi (_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.
w 7_s_p4_EDIT_Comment_2 işlevinin içinde, ardından türü
Yapabilirsiniz. Ancak, örtük bir tür dönüşümü olduğu için ek bir uyarı olacaktır. Teknik olarak, sadece bir sayı gönderebilirsiniz. Değişken olmadan. Bunu herkesin takdirine bırakıyorum.
w 7_s_p4_EDIT_Comment_2 işlevinin içinde, ardından türü
w7_s_p4_EDIT_Comment_2 işlevinin içinde hiçbir şey yoktur. Bu, merkezi fonksiyonu çağıran bir sarmalayıcıdır. Ve sarmalayıcı işlev yalnızca kendi türünde bir değer döndürebilir.
h ini #: w7_s_p4_EDIT_Comment_2 işlevi, double türünü alan karşılık gelen bir aşırı yüklenmiş sürüm oluşturamaz mı?
w7_s_p4_EDIT_Comment_2 işlevinin içinde hiçbir şey yoktur. Bu sadece merkezi bir fonksiyonu çağıran bir sarmalayıcıdır. Sarmalayıcı işlevler yalnızca kendi türlerinde değerler döndürebilir.
Yapamaz, çünkü bu bir sarmalayıcı. Bunu karmaşıklaştırmaya gerek yoktur. Tüm iş merkezi fonksiyon tarafından yapılır.Doğru.
Bugün dört konuya göz atalım:
9. Önceki _V_LAST değerini döndürme .
10. Farklı eleman türleri için ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK durumlarının ayarlanması.
11. Parametre değişikliklerinin senkronizasyonu: örneğin düğmeler ve kaydırıcı ile giriş alanı. Amaç, ilk değer değiştiğinde ikinci değerin de buna uygun olarak değişmesidir. Önce bir pencerede, sonra pencereler arasında iletişim kuralım.
12. Kaydırıcının ve düğmeli alanın aralık sınırlarını programlı olarak sıfırlayın.
//---------------------------------------------------------------------------------------------------------
Şimdiye kadar aşağıdaki konuları ele aldık:
1. Intellisense listesinde yönlendirme ve istenen pencerenin işlevini seçme.
2. Pencerelerin yazılımla açılması ve kapatılması.
3. Intellisense listesinde yönlendirme ve gerekli pencerede gerekli öğenin seçilmesi.
4. Bireysel eleman özelliklerinin listelerinde gezinme.
5. Bir öğenin ve pencere sarmalayıcı işlevinin adının ayrıştırılması.
6. Seçilen bir elemanın parametre değerinin kendi türündeki bir değişkene döndürülmesi. Birkaç farklı elemanın üç tipini düşünün.
7. Farklı tipteki elemanların parametrelerinde değerlerin ayarlanması. 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 elemana iletmek. 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.