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?
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?
İşin aslı şu ki bir hata görmüyorum ama uyarı örtük bir tamsayıyı string'e çeviriyor.Buna inanmak zor olsa da hatanın derleyicide olduğundan şüpheleniyorum. Her durumda, bunu çözmeniz gerekir.
buyanov : err değişkeni tamsayı olarak bildirildi Sorunun ne olduğu belli değil Mesaj alındı
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.
buyanov : tavsiye ettiğiniz gibi, err=StringToInteger((string)err); satırını Ondeinit işlevine koydunuz, 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.
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
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