MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1057

 
Alexey Viktorov :

Kontrol ettim, değiştirebilirsiniz. Ancak bu değişiklik, terminal için tüm uyarılar için geçerli olacaktır. Ve her koşul için gerekliyse, PlaySound () kullanmanız gerekir, ancak başka birinin işlevinde değil, nasıl çalıştığını kendiniz anlamak için.

PlaySound() , Uyarıdan bağımsız olarak çalışır.

Denedim, iki ses çalınıyor ve Alert ve PlaySound(),

 
MakarFX :

Teşekkürler, işe yaradı.

Ama olay ayrımı ile sorunu çözmez.

Yeniden

terminal ayarlarından uyarı sesini kapatın

MQL kodunda, PlaySound()'u kullanarak sesin çıktısını alın ve ardından Alert()'i arayın - bu şekilde farklı uyarılar için farklı sesler elde edersiniz, ancak yalnızca bir uyarıya bir ses atamak ve ardından MQL kodundan bunu programlı olarak değiştirmek mümkün değildir.

 
Igor Makanu :

Yeniden

terminal ayarlarından uyarı sesini kapatın

MQL kodunda, PlaySound()'u kullanarak sesin çıktısını alın ve ardından Alert()'i arayın - bu şekilde farklı uyarılar için farklı sesler elde edersiniz, ancak yalnızca bir uyarıya bir ses atamak ve ardından MQL kodundan bunu programlı olarak değiştirmek mümkün değildir.

Tam tersi, önce Alert(), sonra PlaySound(). Aksi takdirde PlaySound()'un oynamaya başlamak için zamanı bile olmaz, Alert() onu öldürür.

 
Igor Makanu :

Yeniden

terminal ayarlarında uyarı sesini kapatın


Boş bir ses koy demek istiyorsun çünkü ayarlarda uyarıyı devre dışı bırakırsan hiç çalışmıyor.

 
Alexey Viktorov :

Tam tersi, önce Alert(), sonra PlaySound(). Aksi takdirde PlaySound()'un oynamaya başlamak için zamanı bile olmaz, Alert() onu öldürür.

belki kontrol edilmedi

PlaySound() ile bazı şakalar var, bence onunla uyarı arasına Sleep(150) eklemeniz gerekiyor, ancak bunlar önemsiz

 
Igor Makanu :

belki kontrol edilmedi

PlaySound() ile bazı şakalar var, bence onunla uyarı arasına Sleep(150) eklemeniz gerekiyor, ancak bunlar önemsiz

Teşekkür ederim.
 
Igor Makanu :

belki kontrol edilmedi

PlaySound() ile bazı şakalar var, bence onunla uyarı arasına Sleep(150) eklemeniz gerekiyor, ancak bunlar önemsiz

Boş bir adla PlaySound() , çalmakta olan sesi durdurur.

 
MakarFX :

Boş bir ses koy demek istiyorsun çünkü ayarlarda uyarıyı devre dışı bırakırsan hiç çalışmıyor.

Kodu uzun süre okudum. Ben gerçekten bir kodlayıcı değilim, ancak bazı işlevler var, başlangıçta aşağıdakilere dikkat edin:

extern bool UseSound = False; // Sesi kullan

Muhtemelen değeri True olarak değiştirmeniz ve sesinizi bu işleve eklemeniz gerekir. Bu, uyarıyla birlikte değil, ondan ayrı olacak şekildedir.

Kodun sonunda (daha önce yayınladığınız şey) aşağıdakiler var:

void Signal(string st) {

if (UseAlert) Alert(st);

if (Yorum Kullan) Yorum(st);

if (UseSendMail) SendMail(WindowExpertName(), st);

if (UseSendPush) SendNotification (st);

if (UsePrint) Print(st);

if (UseSound) PlaySound(sotFileName);

}


Anladığım kadarıyla bunlar Signal işlevi tarafından gerçekleştirilen değişkenlerdir. Buna göre, kodda, bu Signal işlevi birkaç olay seçeneğinde yazılmıştır. Ve şimdi, bu olayların her biri için istenen değeri (sesi) yazın.


Soruyu tamamen karıştırdıysam programcıların beni düzeltmesine izin verin :)

 
Vitaliy Maznev :

Kodu uzun süre okudum. Ben gerçekten bir kodlayıcı değilim, ancak bazı işlevler var, başlangıçta aşağıdakilere dikkat edin:


Soruyu tamamen karıştırdıysam programcıların beni düzeltmesine izin verin :)

Sorunun özü, Alert'in olaya bağlı olarak farklı seslerle çalışmasıydı. UseSound, yalnızca PlaySound işlevine atıfta bulunur ve Uyarının çalışmasını etkilemez.

 
MakarFX :

Sorunun özü, Alert'in olaya bağlı olarak farklı seslerle çalışmasıydı. UseSound, yalnızca PlaySound işlevine atıfta bulunur ve Uyarının çalışmasını etkilemez.

Yani bu durumda Alert ve Playsound işlevleri birbirinin yerine kullanılabilir mi? Yoksa ben mi yanlış anladım? Uyarı işlevi içinde değişkenleri ayarlamak mümkün değilse ve özel bir sesle ilgileniyorsanız, gerekli her olayda Uyarıyı Playsound ile değiştirin ( (UseAlert) ile (UseSound)). Ve tam olarak ihtiyacınız olanı alıyoruz. En azından mantıksal olarak.