Tutte le domande dei nuovi arrivati su MQL4 e MQL5, aiuto e discussione su algoritmi e codici - pagina 1057

 
Alexey Viktorov:

Ho appena controllato, può essere cambiato. Ma questo cambiamento sarà per tutti gli avvisi per il terminale. E se vuoi usare PlaySound() per ogni condizione, dovresti usarlo, ma non nella funzione di qualcun altro, e capire come funziona da solo.

PlaySound() funziona indipendentemente dagli avvisi.

Ho provato, suona due suoni sia Alert che PlaySound(),

 
MakarFX:

Grazie, ha funzionato.

Ma non risolve il problema della separazione degli eventi

un'altra volta

nelle impostazioni del terminale disabilitare il suono di avviso

nel codice MQL emettere un suono usando PlaySound() e poi chiamare Alert() - così si otterranno suoni diversi per diversi avvisi, e non si può semplicemente assegnare un suono all'avviso e poi cambiarlo programmaticamente dal codice MQL

 
Igor Makanu:

di nuovo

nelle impostazioni del terminale disabilitare il suono di avviso

nel codice MQL emettere il suono usando PlaySound() e poi chiamare Alert() - così si otterranno suoni diversi per diversi avvisi, e non è possibile assegnare alcun suono all'avviso e poi cambiarlo programmaticamente dal codice MQL

Solo viceversa, prima Alert() poi PlaySound(). Altrimenti PlaySound() non avrà nemmeno il tempo di iniziare a suonare, Alert() lo sovrascriverà.

 
Igor Makanu:

di nuovo

nelle impostazioni del terminale, disattivare gli avvisi


Intendi mettere un suono vuoto, perché se disabiliti l'avviso nelle impostazioni, non funziona affatto

 
Alexey Viktorov:

Solo viceversa, prima Alert() poi PlaySound(). Altrimenti PlaySound() non avrà nemmeno il tempo di iniziare a suonare, Alert() lo ucciderà.

forse, non ho controllato.

C'è una cosa strana su PlaySound(), penso di dover aggiungere Sleep(150) tra esso e Alert, ma non è un grosso problema

 
Igor Makanu:

forse, non ho controllato

ci sono alcuni trucchi con PlaySound(), penso che dobbiamo aggiungere Sleep(150) tra esso e l'avviso, ma non è niente

Grazie.
 
Igor Makanu:

forse, non ho controllato

PlaySound() è un po' complicato, penso di dover aggiungere Sleep(150) tra esso e l'avviso, ma non è un grosso problema

PlaySound() con nome vuoto ferma la riproduzione del suono in corso.

 
MakarFX:

Intendi mettere il suono vuoto, perché se disattivi l'avviso nelle impostazioni, non funziona affatto

Mi ci è voluto molto tempo per leggere il codice. Non sono un codificatore, ma tra le funzioni che ci sono, notate la seguente all'inizio:

extern bool UseSound = False; // Usa il suono

Probabilmente è necessario cambiare il valore in True e collegare già il vostro suono a questa funzione. Non dovrebbe essere attaccato insieme all'allarme, ma separatamente da esso.

Alla fine del codice (quello che hai scritto prima) c'è il seguente

void Signal(string st) {

se (UseAlert) Alert(st);

se (UseComment) Comment(st);

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

se (UseSendPush) SendNotification(st);

se (UsePrint) Print(st);

se (UseSound) PlaySound(sotFileName);

}


Ho capito che queste sono variabili che vengono eseguite dalla funzione Signal. Pertanto, questa funzione Signal ha diverse opzioni di eventi nel suo codice. E per ogni evento devo aggiungere il valore necessario (suono).


Lasciate che i programmatori mi correggano se ho completamente confuso la domanda :)

 
Vitaliy Maznev:

Mi ci è voluto molto tempo per leggere il codice. Non sono un codificatore, ma tra le funzioni che ci sono, fate attenzione a quanto segue all'inizio:


Lasciate che i programmatori mi correggano se ho completamente confuso la domanda :)

La domanda principale riguardava l'uso di suoni diversi a seconda dell'evento. UseSound si applica solo alla funzione PlaySound e non influisce sul funzionamento di Alert

 
MakarFX:

Il punto della domanda era che Alert sarebbe stato attivato con suoni diversi a seconda dell'evento. UseSound si riferisce solo alla funzione PlaySound e non influisce sul funzionamento di Alert

Quindi le funzioni Alert e Playsound sono intercambiabili in questo caso, giusto? O ho sbagliato? Se non potete scrivere variabili all'interno della funzione Alert, e siete interessati al suono personalizzato, allora sostituite Alert con Playsound ((UseAlert) con(UseSound)) in ogni evento richiesto. E otterrete esattamente ciò di cui avete bisogno. Almeno, logicamente.