Galleria di interfacce utente scritte in MQL - pagina 60

 

Come si è visto, la parte pratica della demo è piuttosto estesa e la sua copertura richiederà tempo. Racconterò e mostrerò le nuove funzionalità in dettaglio e in modo accessibile, con commenti, immagini e gif. Forse dovrò dividere la presentazione in due giorni, oggi e domani. Va bene così, la vostra comprensione migliorerà. Anche voi dovreste riposarvi.


Il piano di analisi delle funzionalità della nuova versione del motore:

1. Vi ricordo che le nuove cartelle e i nuovi file devono essere installati in ME dopo la completa cancellazione di quelli precedenti. Non è necessario effettuare sostituzioni.

2. Per lavorare è necessario aprire i file (1) EA Shell v1.mq5 e API.mqh . Non è necessario aprire altri file. Utilizzeremo la stessa interfaccia e le finestre familiari del progetto demo 1.mqh. Il primo file dovrebbe trovarsi nella cartella Experts (credo sia già presente), mentre il secondo si trova qui:



I file UIDATA.mqh e API.mqh contenuti in questa cartella contengono già tutto ciò che serve. Non è necessario generare nuovi file nel costruttore.


3. Il lavoro principale si svolgerà nel file (1) EA Shell v1.mq5, nelle funzioni _OnInit() e _OnTimer, ma a volte daremo un'occhiata al file API.mqh. Se siete curiosi, potete aprire il file UIDATA.mqh e vedere come sono fatte le funzioni di window e element wrapper. Sono stampate in fondo. Per il resto, questo file non è necessario per il lavoro e può essere chiuso.


Gli argomenti che tratteremo sono:

1. navigare nell'elenco di intellisense e selezionare la funzione finestra giusta.

2. Apertura e chiusura programmatica delle finestre.

3. Orientarsi nell'elenco di intellisense e selezionare la funzione giusta nella finestra giusta.

4. Navigare negli elenchi delle proprietà dei singoli elementi.

5. Parsing del nome dell'elemento e funzione wrapper della finestra.

6. Restituzione del valore del parametro di un elemento selezionato a una variabile del suo tipo. Considerare tre tipi di elementi diversi.

7. Impostazione dei valori dei parametri di diversi tipi di elementi. Vediamo come appariranno i valori nelle finestre dell'interfaccia di questi elementi.

8. Restituzione dei valori dei parametri di un elemento, modifica e inoltro del valore a un altro elemento. Considerate diversi tipi di elementi e valori e testate l'inoltro tra diversi tipi di elementi in diverse finestre.

9. Restituzione del valore precedente (_V_LAST). Quando e in quali casi è richiesto l'ultimo valore (da non confondere con il valore corrente).

10. Testare l'impostazione degli stati ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK per diversi tipi di elementi.

11. Proviamo a collegare e sincronizzare le modifiche dei valori di elementi di tipo diverso: ad esempio, campo di input con pulsanti e cursore. Supponiamo che quando il valore di un elemento (manuale o software) cambia, il valore del secondo elemento cambi di conseguenza.

12. Proviamo a reimpostare programmaticamente i confini dell'intervallo dello slider e del campo di input con pulsanti tramite funzioni wrapper. Non ho avuto il tempo di testarlo, ma qualcosa mi suggerisce che funzionerà. Comunque, vediamo.

13. Proviamo a restituire gli stati degli elementi tramite funzioni wrapper. È inclusa nella funzionalità, ma non ho avuto il tempo di testarla. Quindi vedremo... Il risultato è sconosciuto.

14. Otteniamo e impostiamo i colori per il testo e le basi degli elementi. Possiamo provare ad associare questi colori ad alcuni semplici eventi o confini di valori.

15. Vi spiegherò meglio come navigare e leggere la nuova stampa del file API.


Per ora è tutto, ma sono possibili aggiunte man mano che si procede.

 

Iniziamo a considerare gli argomenti sopra citati.

1. orientarsi nell'elenco di intellisense e selezionare la funzione della finestra desiderata:

Digitare w_, appareun elenco di funzioni delle finestre dell'interfaccia utente di questo progetto.


2- Orientarsi nell'elenco di intellisense e selezionare la funzione desiderata dalla finestra selezionata:

Dopo aver selezionato una finestra, guardiamo il suo numero.

Cancelliamo il trattino dopo w e stampiamo il suo numero.

Questo è il prefisso per l'elenco di tutti gli interattivi di quella finestra:


//-------------------------------------------------------------------------------------------------------------------------------------------

La gif mostra la facilità e la dinamicità di questo processo:



Vediamo poi come aprire e chiudere le finestre della GUI.

 

3. aprire e chiudere le finestre:

  • Per aprire una finestra è necessario selezionare il suo nome dall'elenco diintellisense e aggiungere le parentesi con un punto e virgola.Non inserire nulla all'interno della chiamata.

  • Per chiudere una finestra è necessario fare la stessa cosa, ma mettere 0 tra le parentesi.



Ecco come appare nel processo:





Continueremo gli argomenti domani, con nuova energia.

 
senza soluzione di continuità
 

选择窗口后,我们查看其编号。

Cancelliamo il trattino dopo la w e stampiamo il suo numero.

Questo è il prefisso di tutti gli elenchi di interazione di quella finestra:

Cosa sono p1~p7? Capito. È l'attributo

 
L'interfaccia grafica non funziona ancora nel tester
 
hini #:

Che cos'è p1~p7? Capisco. È un attributo

È un prefisso per aprire un elenco di proprietà di singoli elementi disponibili per restituire e impostare i valori della sua funzione wrapper.


 
hini #:
L'interfaccia grafica non funziona ancora nel tester.
Non ho ancora indagato su questo problema, non ho avuto tempo. Dopo aver finito di scrivere la funzionalità di base, vedrò se è possibile fare qualcosa.
 
Реter Konow #:
Non ho ancora esaminato la questione perché non ne ho avuto il tempo. Quando finirò di scrivere la funzionalità di base, vedrò se è possibile fare qualcosa al riguardo.
Perché nel tester, non viene chiamato OnChartEvent
 
Passiamo all'argomento successivo e analizziamo gli elenchi di proprietà dei singoli elementi.