Puoi fare qualcosa del genere: in una dll, un array o due array, uno per il nome dell'oggetto e l'altro per il tipo di evento.
qui!
Non ho ancora controllato, ma se gli sviluppatori hanno un supporto avanzato per C#.Net, allora forse funziona lo scambio di tipi di dati complessi tra MT5 e .dll, cioè strutture.
Se lo scambio di strutture funziona, il compito diventa ancora più semplice e primitivo.
riempiamo la struttura con OrderProfit,OrderTicket,OrderStoploss.... sul tick ...e inviare questa struttura a una .dll e ricevere una struttura di risposta dall'utente... Poi il modulo ruota le informazioni visive da solo, il terminale stesso.
Tag Konow:
E poi creare una memoria TOTALE all'interno della .dll.
Con l'aumento del numero di elementi del modulo e la crescente complessità del programma MT5, questa interazione diventa MOLTO impegnativa e complessa.
Hmmm, cosa c'è di complicato in questo? Si separa la visualizzazione = .dll, separatamente il lavoro MT
difficile da spiegare, avete un'idea della velocità di scambio di dati attraverso la memoria? - Non stiamo parlando di centomila byte al secondo, nemmeno di milioni, ma di diversi miliardi di byte al secondo, e stai parlando della complessità dello scambio )))))
Collegare la DLL all'applicazione Windows con un modulo.
Scrivere metodi che traducono gli eventi di pressione dei pulsanti e delle caselle di controllo in dll.
Scrivere metodi per cambiare lo stato di pulsanti e caselle di controllo nell'applicazione widow.
Crea la memoria condivisa nella dll. In modo che quando si accede da MT5 il flag di cambiamento di stato per i pulsanti e le caselle di controllo sia impostato. Poi l'applicazione Windows accede alla memoria condivisa, legge i flag e li usa per conoscere lo stato di uno o un altro elemento del modulo da cambiare.
Scrivere il riferimento ciclico alla DLL dal timer in MT5 per leggere i flag delle chiamate di funzione o inserire il testo nei campi.
E se ci sono centinaia di elementi?
Come organizzare la memoria condivisa?
Cosa succede se è necessario cambiare non solo lo stato premuto/rilasciato degli elementi in un modulo, ma anche il loro colore (per esempio, per i pulsanti)?
Cosa succede se è necessario cambiare il testo nei campi di inserimento di un modulo programmaticamente da МТ5?
1. Qual è il problema? Sta selezionando il tipo di progetto quando lo si crea.
2. Come si vede nell'esempio mostrato da Igor, la connessione è fatta in una riga, non c'è nemmeno bisogno di descrivere l'importazione.
3. Un metodo viene scritto una volta, salvato in un file, e poi viene usato in tutti i progetti senza alcuna modifica.
4. Probabilmente è necessario, ma sono semplici. Non tutti saranno probabilmente necessari, l'interazione tra gli elementi di controllo in c# sarà diversa, e potrebbe essere necessario inserire un solo evento, e ci saranno 100 pulsanti sul modulo.
5. Questo è legato al punto 3.
6. Anche una linea con il giusto approccio al punto 3.
7 - Hai tutta la potenza di C# nelle tue mani, la cui scala sembra non avere idea è enorme.
Stai prendendo l'esempio più semplice ed estrapolando da esso, pensando che la complessità non aumenterà. Questo è un errore.
Anche l'esempio più semplice che hai fatto è sbagliato. Perché oltre al modulo creato, è necessario creare anche una DLL. E poi creare una memoria TOTALE all'interno della DLL.
Man mano che il numero di elementi del modulo cresce e la funzionalità del programma su MT5 diventa più complessa, questa interazione diventa MOLTO impegnata e complicata.
Il problema è che ho fatto DAVVERO quello di cui sto parlando. E conosco la complessità di organizzare l'interazione tra un complesso programma di MT e un complesso programma di terzi.
E l'approccio del profano è di solito quello di dire "È facile... Qual è il problema? È così, è così...".
Datemi un esempio di collegamento tra un complesso programma MT e un complesso modulo Windows, dove il programma può:
Cambia gli stati degli elementi e il testo in uscita nei campi di input.
Dove il programma può accettare del testo dai campi del modulo e cambiare i colori degli elementi.
Dove il programma può controllare i fenomeni delle finestre dei moduli (aprirne alcune e chiuderne altre).
Posso fornire un esempio di questo che funziona completamente su MT.
Il problema è che ho fatto DAVVERO quello di cui sto parlando. E conosco la complessità di organizzare l'interazione tra un complesso programma di MT e un complesso programma di terzi.
E l'approccio del profano è di solito quello di dire "È facile... Qual è il problema? È così, è così...".
Datemi un esempio di collegamento tra un complesso programma MT e un complesso modulo Windows, dove il programma può:
Cambia gli stati degli elementi e il testo in uscita nei campi di input.
Dove il programma può accettare del testo dai campi del modulo e cambiare i colori degli elementi.
Dove il programma può controllare i fenomeni delle finestre dei moduli (aprirne alcune e chiuderne altre).
Posso fornire un esempio di questo che funziona completamente su MT.
Se lo faceste, non fareste domande come quella di oggi. Impara il C# e fallo da solo. Come collegare la dll e chiamare i metodi che Igor ha mostrato ieri.
1. Qual è il problema? È la scelta del tipo di progetto quando lo si crea.
2. Come si vede nell'esempio mostrato da Igor, la connessione è fatta in una riga, anche l'importazione non è descritta.
3. Un metodo viene scritto una volta, salvato in un file, e poi viene usato in tutti i progetti senza alcuna modifica.
4. Probabilmente è necessario, ma sono semplici. Non tutti saranno probabilmente necessari, l'interazione tra gli elementi di controllo in c# sarà diversa, e potrebbe essere necessario inserire un solo evento, e ci saranno 100 pulsanti sul modulo.
5. Questo è legato al punto 3.
6. Anche una linea con il giusto approccio al punto 3.
7 - Nelle tue mani tutta la potenza di C#, la cui scala sembra non avere idea, è enorme.
Dmitry, usa l'enorme potenza di C# e fai un'applicazione non molto complessa con un modulo, che interagisce con l'applicazione MT ed esegue questi elementi:
Cambia gli stati degli elementi e invia il testo aicampi di input.
Prende il testo dai campi di input del modulo e cambia i colori degli elementi.
Controlla il fenomeno delle finestre dei moduli (ne apre alcune e ne chiude altre).
Igor e voi affermate che è molto facile. Così riuscirete a gestirlo rapidamente. Fornirò un analogo completamente in MT. E confronteremo la qualità dell'esecuzione e la complessità.
Dimitri, usa la GRANDE potenza di C# e fai un'applicazione non molto complessa con un modulo che interagisce con l'applicazione MT ed esegue questi elementi:
Cambia gli stati degli elementi e invia il testo aicampi di input.
Prende il testo dai campi di input del modulo e cambia i colori degli elementi.
Controlla il fenomeno delle finestre dei moduli (ne apre alcune e ne chiude altre).
Igor e voi affermate che è molto facile. Così riuscirete a gestirlo rapidamente. Fornirò un analogo completamente in MT. E confronteremo la qualità dell'esecuzione e la complessità.
Ho molto da fare. Ma potete continuare nelle vostre illusioni.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Puoi fare qualcosa del genere: in una dll, un array o due array, uno per il nome dell'oggetto e l'altro per il tipo di evento.
qui!
Non ho ancora controllato, ma se gli sviluppatori hanno un supporto avanzato per C#.Net, allora forse funziona lo scambio di tipi di dati complessi tra MT5 e .dll, cioè strutture.
Se lo scambio di strutture funziona, il compito diventa ancora più semplice e primitivo.
riempiamo la struttura con OrderProfit,OrderTicket,OrderStoploss.... sul tick ...e inviare questa struttura a una .dll e ricevere una struttura di risposta dall'utente... Poi il modulo ruota le informazioni visive da solo, il terminale stesso.
E poi creare una memoria TOTALE all'interno della .dll.
Con l'aumento del numero di elementi del modulo e la crescente complessità del programma MT5, questa interazione diventa MOLTO impegnativa e complessa.
Hmmm, cosa c'è di complicato in questo? Si separa la visualizzazione = .dll, separatamente il lavoro MT
difficile da spiegare, avete un'idea della velocità di scambio di dati attraverso la memoria? - Non stiamo parlando di centomila byte al secondo, nemmeno di milioni, ma di diversi miliardi di byte al secondo, e stai parlando della complessità dello scambio )))))
OK.
Quindi è necessario:
E se ci sono centinaia di elementi?
Come organizzare la memoria condivisa?
Cosa succede se è necessario cambiare non solo lo stato premuto/rilasciato degli elementi in un modulo, ma anche il loro colore (per esempio, per i pulsanti)?
Cosa succede se è necessario cambiare il testo nei campi di inserimento di un modulo programmaticamente da МТ5?
1. Qual è il problema? Sta selezionando il tipo di progetto quando lo si crea.
2. Come si vede nell'esempio mostrato da Igor, la connessione è fatta in una riga, non c'è nemmeno bisogno di descrivere l'importazione.
3. Un metodo viene scritto una volta, salvato in un file, e poi viene usato in tutti i progetti senza alcuna modifica.
4. Probabilmente è necessario, ma sono semplici. Non tutti saranno probabilmente necessari, l'interazione tra gli elementi di controllo in c# sarà diversa, e potrebbe essere necessario inserire un solo evento, e ci saranno 100 pulsanti sul modulo.
5. Questo è legato al punto 3.
6. Anche una linea con il giusto approccio al punto 3.
7 - Hai tutta la potenza di C# nelle tue mani, la cui scala sembra non avere idea è enorme.
Senza offesa, ma scusate l'off-topic.
Stai prendendo l'esempio più semplice ed estrapolando da esso, pensando che la complessità non aumenterà. Questo è un errore.
Anche l'esempio più semplice che hai fatto è sbagliato. Perché oltre al modulo creato, è necessario creare anche una DLL. E poi creare una memoria TOTALE all'interno della DLL.
Man mano che il numero di elementi del modulo cresce e la funzionalità del programma su MT5 diventa più complessa, questa interazione diventa MOLTO impegnata e complicata.
Ho testato tutto questo nella pratica.
La conclusione è completamente sbagliata.
Il problema è che ho fatto DAVVERO quello di cui sto parlando. E conosco la complessità di organizzare l'interazione tra un complesso programma di MT e un complesso programma di terzi.
E l'approccio del profano è di solito quello di dire "È facile... Qual è il problema? È così, è così...".
Datemi un esempio di collegamento tra un complesso programma MT e un complesso modulo Windows, dove il programma può:
Il problema è che ho fatto DAVVERO quello di cui sto parlando. E conosco la complessità di organizzare l'interazione tra un complesso programma di MT e un complesso programma di terzi.
E l'approccio del profano è di solito quello di dire "È facile... Qual è il problema? È così, è così...".
Datemi un esempio di collegamento tra un complesso programma MT e un complesso modulo Windows, dove il programma può:
Se lo faceste, non fareste domande come quella di oggi. Impara il C# e fallo da solo. Come collegare la dll e chiamare i metodi che Igor ha mostrato ieri.
1. Qual è il problema? È la scelta del tipo di progetto quando lo si crea.
2. Come si vede nell'esempio mostrato da Igor, la connessione è fatta in una riga, anche l'importazione non è descritta.
3. Un metodo viene scritto una volta, salvato in un file, e poi viene usato in tutti i progetti senza alcuna modifica.
4. Probabilmente è necessario, ma sono semplici. Non tutti saranno probabilmente necessari, l'interazione tra gli elementi di controllo in c# sarà diversa, e potrebbe essere necessario inserire un solo evento, e ci saranno 100 pulsanti sul modulo.
5. Questo è legato al punto 3.
6. Anche una linea con il giusto approccio al punto 3.
7 - Nelle tue mani tutta la potenza di C#, la cui scala sembra non avere idea, è enorme.
Dmitry, usa l'enorme potenza di C# e fai un'applicazione non molto complessa con un modulo, che interagisce con l'applicazione MT ed esegue questi elementi:
Dimitri, usa la GRANDE potenza di C# e fai un'applicazione non molto complessa con un modulo che interagisce con l'applicazione MT ed esegue questi elementi:
Ho molto da fare. Ma potete continuare nelle vostre illusioni.
E oh sì, un miracolo mai visto nella programmazione: per fare qualcosa, bisogna scrivere una funzione per farlo.
Ho delle cose da fare. ...
OK, forse Igor lo farà allora...
OK, forse Igor lo farà allora...
Igor ha già mostrato troppo. E ho detto troppo.