Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1057

 
Alexey Viktorov:

Je viens de vérifier, ça peut être changé. Mais ce changement concernera toutes les alertes pour le terminal. Et si vous voulez utiliser PlaySound() à chaque condition, vous devez l'utiliser, mais pas dans la fonction de quelqu'un d'autre, et comprendre comment cela fonctionne par vous-même.

PlaySound() fonctionne indépendamment des alertes.

Je l'ai essayé, il joue deux sons à la fois Alert et PlaySound(),

 
MakarFX:

Merci, ça a marché.

Mais cela ne résout pas le problème de la séparation des événements.

une fois de plus

dans les paramètres du terminal, désactivez le son d'alerte

dans le code MQL, produire un son en utilisant PlaySound() puis appeler Alert() - vous obtiendrez donc des sons différents pour des alertes différentes, et vous ne pouvez pas simplement attribuer un son à l'alerte et le modifier par programme à partir du code MQL.

 
Igor Makanu:

à nouveau

dans les paramètres du terminal, désactivez le son d'alerte

dans le code MQL, vous produisez un son en utilisant PlaySound() puis vous appelez Alert() - vous obtiendrez donc des sons différents pour des alertes différentes, et il n'est pas possible d'attribuer un son à une alerte et de le modifier par programme à partir du code MQL.

Seulement vice versa, d'abord Alert() puis PlaySound(). Sinon, PlaySound() n'aura même pas le temps de commencer à jouer, Alert() l'écrasera.

 
Igor Makanu:

à nouveau

dans les paramètres du terminal, mettre en sourdine les alertes


Vous voulez dire mettre un son vide, car si vous désactivez l'alerte dans les paramètres, elle ne fonctionne pas du tout.

 
Alexey Viktorov:

Seulement vice versa, d'abord Alert() puis PlaySound(). Sinon, PlaySound() n'aura même pas le temps de commencer à jouer, Alert() le tuera.

peut-être, je ne l'ai pas vérifié.

Il y a un truc bizarre avec PlaySound(), je pense que je dois ajouter Sleep(150) entre lui et Alert, mais ce n'est pas un gros problème.

 
Igor Makanu:

peut-être, je ne l'ai pas vérifié

il y a quelques astuces avec PlaySound(), je pense que nous devons ajouter Sleep(150) entre lui et l'alerte, mais ce n'est rien

Merci.
 
Igor Makanu:

peut-être, je ne l'ai pas vérifié

PlaySound() est un peu délicat, je pense que je dois ajouter Sleep(150) entre lui et l'alerte, mais ce n'est pas un gros problème.

PlaySound() avec un nom vide arrête la lecture du son en cours de lecture.

 
MakarFX:

Vous voulez dire mettre le son vide, car si vous désactivez l'alerte dans les paramètres, cela ne fonctionne pas du tout.

Il m'a fallu beaucoup de temps pour lire le code. Je ne suis pas vraiment un codeur, mais parmi les fonctions proposées, notez ce qui suit au début :

extern bool UseSound = False ; // Utiliser le son

Il faut probablement changer la valeur en True et attacher déjà votre son à cette fonction. Il ne doit pas être attaché en même temps que le signalement, mais séparément de celui-ci.

A la fin du code (celui que vous avez écrit plus tôt), il y a le suivant

void Signal(string st) {

if (UseAlert) Alert(st) ;

{ if (UseComment) Commentaire(st) ;

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

si (UseSendPush) SendNotification(st) ;

if (UsePrint) Print(st) ;

if (UseSound) PlaySound(sotFileName) ;

}


Je comprends que ce sont des variables qui sont exécutées par la fonction Signal. Par conséquent, cette fonction Signal dispose de plusieurs options d'événements dans son code. Et pour chaque événement, je dois ajouter la valeur nécessaire (son).


Que les programmeurs me corrigent si j'ai complètement confondu la question :)

 
Vitaliy Maznev:

Il m'a fallu beaucoup de temps pour lire le code. Je ne suis pas vraiment un codeur, mais parmi les fonctions proposées, faites attention à ce qui suit au début :


Que les programmeurs me corrigent si j'ai complètement confondu la question :)

La question principale portait sur l'utilisation de sons différents en fonction de l'événement. UseSound s'applique uniquement à la fonction PlaySound et n'affecte pas le fonctionnement d'Alert.

 
MakarFX:

Le but de la question était que l'alerte soit déclenchée avec des sons différents selon l'événement. UseSound se réfère uniquement à la fonction PlaySound et n'affecte pas le fonctionnement d'Alert.

Les fonctions Alerte et Playsound sont donc interchangeables dans ce cas, non ? Ou est-ce que je me suis trompé ? Si vous ne pouvez pas écrire de variables dans la fonction Alert, et que vous êtes intéressé par un son personnalisé, remplacez Alert par Playsound ((UseAlert) par(UseSound)) dans chaque événement requis. Et vous obtiendrez exactement ce dont vous avez besoin. Du moins, logiquement.

Raison: