MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 251
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
Merhaba. Bir danışman için mql4 ve mql5 olmak üzere iki versiyonda bir ticaret paneli yazmak istiyorum. Henüz grafik nesnelere pek aşina değilim; hareketli bir menü oluşturmak için standart kitaplığın CLabel sınıfından bir örnek kullandım. mql5'te menü harika çalışıyor ancak mql4'te çalışmıyor. Grafik periyodunu değiştirirken, menü nesneleri çoğaltılır, birbirlerine göre konumları değişir. Muhtemelen CLabel sınıfındaki mql4, mql5'teki bazı yöntemlerden yoksundur? Bu tür sorunların ortaya çıkmaması için bu sınıfa ek olarak nelerin kaydedilmesi gerektiğini söyler misiniz?
Ayrıca, CLabel sınıfı için örnek kodda, bu satırların ne yaptığı bana açık değil:
Merhaba. Bir danışman için mql4 ve mql5 olmak üzere iki versiyonda bir ticaret paneli yazmak istiyorum. Henüz grafik nesnelere aşina değilim; hareketli bir menü oluşturmak için standart kitaplığın CLabel sınıfından bir örnek kullandım. mql5'te menü harika çalışıyor ancak mql4'te çalışmıyor. Grafik periyodunu değiştirirken, menü nesneleri çoğaltılır, birbirlerine göre konumları değişir. Muhtemelen CLabel sınıfındaki mql4, mql5'teki bazı yöntemlerden yoksundur? Bu tür sorunların ortaya çıkmaması için bu sınıfa ek olarak nelerin kaydedilmesi gerektiğini söyler misiniz?
Ayrıca, CLabel sınıfı için örnek kodda, bu satırların ne yaptığı bana açık değil:
Belirtilen satırlar, Defines.mqh dosyasına yazılan makrolardır. Eğer kelimesi kelimesine, makronun ilk satırı kontrolü CControlsDialog sınıfının olay işleme fonksiyonuna aktarır, daha sonra bu makrolar arasında yazılan fonksiyonlar yürütülür, son makro ise kontrolü CAppDialog sınıfına aktarır.
Belirtilen satırlar, Defines.mqh dosyasına yazılan makrolardır. Eğer kelimesi kelimesine, makronun ilk satırı kontrolü CControlsDialog sınıfının olay işleme fonksiyonuna aktarır, daha sonra bu makrolar arasında yazılan fonksiyonlar yürütülür, son makro ise kontrolü CAppDialog sınıfına aktarır.
Teşekkürler, bir şeyler netleşmeye başladı) Makrolar konusundaki belgelere bir bağlantı verebilir misiniz?
Teşekkürler, bir şeyler netleşmeye başladı) Makrolar konusundaki belgelere bir bağlantı verebilir misiniz?
https://www.mql5.com/ru/docs/basis/preprosessor/constant
int OnDeinit()
{
Uyarı ("OnDeinit()'e yalvarın");
// err=StringToInteger(err);
//---------------------------
dönüş(0);
Alert("OnDeinit()'i sonlandır");
}
//OnDeinit();-----------
err değişkeni tamsayı olarak bildirildi
sorunun ne olduğu belli değil
bir mesajım var
int OnDeinit()
{
Alert("OnDeinit()'e yalvarın");
// err=StringToInteger(err);
//---------------------------
dönüş(0);
Alert("OnDeinit()'i sonlandır");
}
//OnDeinit();-----------
err değişkeni tamsayı olarak bildirildi
sorunun ne olduğu belli değil
bir mesajım var
Sorunun ne olduğu ve nerede hata verdiği belli değil. int türünde bir err değişkeniniz varsa, neden yorum satırında onu dize türünden int türüne dönüştürmeye çalışıyorsunuz? Hata tam olarak nerede oluşuyor?
Sorunun ne olduğu ve nerede hata verdiği belli değil. int türünde bir err değişkeniniz varsa, neden yorum satırında onu dize türünden int türüne dönüştürmeye çalışıyorsunuz? Hata tam olarak nerede oluşuyor?
Derleyici mesajı, hatanın satırını ve konumunu belirtir. Açıklama satırına (şekildeki alt satır) tıklayabilirsiniz ve imleç program metninde hatayı gösterecektir. DeInit işlevi, gösterge veya Uzman Danışman grafikten kaldırılmadan hemen önce yürütülür. Burada, örneğin, oluşturulan grafik öğeleri silinebilir. Gerçekleştirilecek herhangi bir işlem yoksa (fonksiyon boşsa), fonksiyon silinebilir... Eğer string x=125 gibi bir şeyiniz varsa, onu string x = (string)125 olarak düzeltin
err=StringToInteger(err) yerine; err=StringToInteger((string)err); bazı insanlar bunu komik bulsa bile
Derleyici mesajı, hatanın satırını ve konumunu belirtir. Açıklama satırına (şekildeki alt satır) tıklayabilirsiniz ve imleç program metninde hatayı gösterecektir. DeInit işlevi, gösterge veya Uzman Danışman grafikten kaldırılmadan hemen önce yürütülür. Burada, örneğin, oluşturulan grafik öğeleri silinebilir. Gerçekleştirilecek herhangi bir işlem yoksa (fonksiyon boşsa), fonksiyon silinebilir... Eğer string x=125 gibi bir şeyiniz varsa, onu string x = (string)125 olarak düzeltin
err=StringToInteger(err) yerine; err=StringToInteger((string)err); bazı insanlar bunu komik bulsa bile
Hmm...
önerdiğin gibi yaptın
err=StringToInteger((string)err); satırını Ondeinit işlevine koyun, hata vermiyor.
ancak dizeden sayıya uyarı örtülü konvsiyon hala devam ediyor, görünüşe göre terminalin yine de yeniden kurulması gerekecek.
ancak dizeden sayıya uyarı örtülü konvsiyon hala devam ediyor, görünüşe göre terminalin yine de yeniden kurulması gerekecek.
OnDeinit işlevinizi gönderin, bir bakayım. Ve ondan ne istediğini bana bildir. Hata MetaEditor tarafından atılır. Terminal klasörünün bir kopyasına sahip olun. Burada Alexey Viktorov nasıl hızlı bir şekilde yeniden kurulacağını söyledi