Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 1057

 
Alexey Viktorov:

Acabo de comprobarlo, se puede cambiar. Pero este cambio será para todas las alertas del terminal. Y si quieres usar PlaySound() en cada condición, deberías usarlo, pero no en la función de otro, y entender cómo funciona por ti mismo.

PlaySound() funciona independientemente de las alertas.

Lo he probado, reproduce dos sonidos tanto de Alerta como de PlaySound(),

 
MakarFX:

Gracias, ha funcionado.

Pero no resuelve el problema de la separación de eventos

una vez más

en la configuración del terminal desactivar el sonido de alerta

en el código MQL se emite un sonido mediante PlaySound() y luego se llama a Alert() - por lo que se obtendrán diferentes sonidos para diferentes alertas, y no se puede simplemente asignar un sonido a la alerta y luego cambiarlo programáticamente desde el código MQL

 
Igor Makanu:

de nuevo

en la configuración del terminal desactivar el sonido de alerta

en el código MQL se emite el sonido mediante PlaySound() y luego se llama a Alert() - por lo que obtendrá diferentes sonidos para diferentes alertas, y no es posible asignar cualquier sonido a la alerta y luego cambiarlo programáticamente desde el código MQL

Sólo al revés, primero Alert() y luego PlaySound(). De lo contrario, PlaySound() ni siquiera tendrá tiempo de empezar a sonar, Alert() lo anulará.

 
Igor Makanu:

de nuevo

en la configuración del terminal, silenciar las alertas


Te refieres a poner un sonido vacío, porque si desactivas la alerta en los ajustes, no funciona en absoluto

 
Alexey Viktorov:

Sólo al revés, primero Alert() y luego PlaySound(). De lo contrario, PlaySound() ni siquiera tendrá tiempo de empezar a reproducirse, Alert() lo matará.

quizás, no lo he comprobado.

Hay una cosa curiosa con PlaySound(), creo que tengo que añadir Sleep(150) entre ella y Alert, pero no es un gran problema

 
Igor Makanu:

tal vez, no lo he comprobado

hay algunos trucos con PlaySound(), creo que hay que añadir Sleep(150) entre él y la alerta, pero no es nada

Gracias.
 
Igor Makanu:

tal vez, no lo he comprobado

PlaySound() es un poco complicado, creo que tengo que añadir Sleep(150) entre él y la alerta, pero no es un gran problema

PlaySound() con nombre vacío detiene la reproducción del sonido actual que se está reproduciendo.

 
MakarFX:

Te refieres a poner el sonido vacío, porque si desactivas la alerta en los ajustes, no funciona en absoluto

Me llevó mucho tiempo leer el código. No soy un codificador realmente, pero de las funciones que hay, nota lo siguiente al principio:

extern bool UseSound = False; // Usar sonido

Probablemente, deberá cambiar el valor a True y adjuntar ya su sonido a esta función. No debe fijarse junto con la alerta, sino por separado de ella.

Al final del código (el que escribiste antes) está lo siguiente

void Signal(string st) {

if (UseAlert) Alert(st);

si (UseComment) Comentario(st);

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

si (UseSendPush) SendNotification(st);

si (UsePrint) Print(st);

if (UseSound) PlaySound(sotFileName);

}


Entiendo que son variables que son ejecutadas por la función Signal. Por lo tanto, esta función de Señal tiene varias opciones de eventos en su código. Y para cada evento necesito añadir el valor necesario (sonido).


Que los programadores me corrijan si he confundido completamente la pregunta :)

 
Vitaliy Maznev:

Me llevó mucho tiempo leer el código. No soy un codificador realmente, pero de las funciones que hay, presta atención a lo siguiente al principio:


Que los programadores me corrijan si he confundido completamente la pregunta :)

La pregunta principal se refería a la utilización de diferentes sonidos en función del evento. UseSound sólo se aplica a la función PlaySound y no afecta al funcionamiento de Alert

 
MakarFX:

La pregunta principal era sobre la activación de la Alerta con diferentes sonidos dependiendo del evento. UseSound se refiere sólo a la función PlaySound y no afecta al funcionamiento de Alert

Así que las funciones de Alerta y Playsound son intercambiables en este caso, ¿verdad? ¿O me he equivocado? Si no puede escribir variables dentro de la función de Alerta, y está interesado en el sonido personalizado, entonces reemplace Alerta por Sonido ((UseAlert) con(UseSound)) en cada evento requerido. Y obtendrá exactamente lo que necesita. Al menos, lógicamente.

Razón de la queja: