Quaisquer perguntas de recém-chegados sobre MQL4 e MQL5, ajuda e discussão sobre algoritmos e códigos - página 1057

 
Alexey Viktorov:

Acabado de ser verificado, pode ser alterado. Mas esta mudança será para todos os alertas para o terminal. E se você quiser usar o PlaySound() em cada condição, você deve usá-lo, mas não na função de outra pessoa, e entender como ele funciona você mesmo.

PlaySound() funciona independentemente de alertas.

Eu tentei, ele toca dois sons, Alert e PlaySound(),

 
MakarFX:

Obrigado, funcionou.

Mas não resolve o problema da separação dos eventos

mais uma vez

nas configurações dos terminais desabilita o som de alerta

no código MQL, emite-se um som usando PlaySound() e depois chama-se Alert() - assim você terá sons diferentes para alertas diferentes, e você não pode simplesmente atribuir um som para alertar e depois mudá-lo programmaticamente do código MQL

 
Igor Makanu:

novamente

nas configurações dos terminais desabilita o som de alerta

em MQL-code output sound usando PlaySound() e depois chamar Alert() - assim você terá sons diferentes para alertas diferentes, e não é possível atribuir qualquer som para alertar e depois mudá-lo programmaticamente de MQL-code

Somente vice versa, primeiro Alerta() e depois PlaySound(). Caso contrário, PlaySound() não terá tempo nem mesmo para começar a tocar, Alert() irá anulá-lo.

 
Igor Makanu:

novamente

nas configurações dos terminais, silenciar os alertas


Você quer dizer colocar um som vazio, porque se você desligar o alerta nos ajustes, ele não funciona de forma alguma

 
Alexey Viktorov:

Somente vice versa, primeiro Alerta() e depois PlaySound(). Caso contrário, PlaySound() não terá tempo nem para começar a tocar, Alert() vai matá-lo.

talvez, não o tenham verificado.

Há uma coisa engraçada na PlaySound(), acho que preciso acrescentar Sleep(150) entre ela e Alert, mas não é nada demais

 
Igor Makanu:

talvez, não o tenha verificado

há alguns truques com PlaySound(), acho que precisamos adicionar Sleep(150) entre ele e o alerta, mas não é nada

Obrigado.
 
Igor Makanu:

talvez, não o tenha verificado

PlaySound() é um pouco complicado, acho que preciso adicionar Sleep(150) entre ele e o alerta, mas não é um grande problema

PlaySound() com o nome vazio pára a reprodução do som atual sendo reproduzido.

 
MakarFX:

Você quer dizer colocar o som vazio, porque se você desligar o alerta nas configurações, ele não funciona de forma alguma

Demorei muito tempo para ler o código. Não sou realmente um codificador, mas das funções lá, observe o seguinte no início:

som externo de bool UseSound = Falso; // Usar som

Provavelmente precisará mudar o valor para True e já anexar seu som a esta função. Ela não deve ser anexada junto com o alerta, mas separadamente dele.

No final do código (aquele que você escreveu antes) há o seguinte

Sinal vazio (string st) {

se (UseAlert) Alert(st);

if (UseComment) Comentário(st);

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

se (UseSendPush) EnviarNotificação(st);

if (UsePrint) Print(st);

se (UseSound) PlaySound(sotFileName);

}


Entendo que estas são variáveis que são executadas por função de sinal. Portanto, esta função de Sinal tem várias opções de eventos em seu código. E para cada evento eu preciso acrescentar o valor necessário (som).


Que os programadores me corrijam se eu tiver confundido completamente a pergunta :)

 
Vitaliy Maznev:

Demorei muito tempo para ler o código. Não sou realmente um codificador, mas das funções lá, preste atenção ao seguinte no início:


Que os programadores me corrijam se eu tiver confundido completamente a pergunta :)

A principal questão era sobre o uso de sons diferentes, dependendo do evento. UseSound só se aplica à função PlaySound e não afeta o funcionamento do Alert

 
MakarFX:

O ponto em questão era que o alerta seria acionado com sons diferentes dependendo do evento. UseSound refere-se apenas à função PlaySound e não afeta o funcionamento do Alerta

Então as funções de Alerta e Playsound são intercambiáveis neste caso, certo? Ou será que eu me enganei? Se você não puder escrever variáveis dentro da função Alerta, e estiver interessado em som personalizado, então substitua Alerta por Playsound ((UseAlert) por(UseSound)) em cada evento requerido. E você terá exatamente o que precisa. Pelo menos, logicamente.

Razão: