- Tipi di Eventi del Grafico
- Timeframes del Grafico
- Proprietà Grafico
- Posizionamento Costanti
- Rappresentazione Grafico
- Esempi di Lavoro con il grafico Chart
Tipi di Eventi del Grafico
Ci sono 11 tipi di eventi che possono essere elaborati utilizzando la funzione predefinita OnChartEvent(). Per gli eventi personalizzati vengono forniti 65535 identificatori nella gamma di CHARTEVENT_CUSTOM fino a CHARTEVENT_CUSTOM_LAST compreso. Per generare un evento personalizzato, deve essere utilizzata la funzione EventChartCustom().
ENUM_CHART_EVENT
ID |
Descrizione |
|---|---|
CHARTEVENT_KEYUP |
Rilasciando un tasto |
CHARTEVENT_KEYDOWN |
Tasti |
CHARTEVENT_MOUSE_MOVE |
Movimento del mouse, clic del mouse (se CHART_EVENT_MOUSE_MOVE=true è impostato per il grafico) |
CHARTEVENT_MOUSE_WHEEL |
Pressione o scorrimento della rotellina del mouse (se CHART_EVENT_MOUSE_WHEEL=True per il chart) |
CHARTEVENT_OBJECT_CREATE |
Oggetto grafico creato (se CHART_EVENT_OBJECT_CREATE=true è impostato per il chart) |
CHARTEVENT_OBJECT_CHANGE |
Oggetto grafico proprietà modificata tramite la finestra delle proprietà |
CHARTEVENT_OBJECT_DELETE |
Oggetto grafico eliminato (se CHART_EVENT_OBJECT_DELETE=true è impostato per il chart) |
CHARTEVENT_CLICK |
Facendo clic su un chart |
CHARTEVENT_OBJECT_CLICK |
Facendo clic su un oggetto grafico |
CHARTEVENT_OBJECT_DRAG |
Drag and drop di un oggetto grafico |
CHARTEVENT_OBJECT_ENDEDIT |
Fine di modifica del testo nella modifica degli oggetti grafici |
CHARTEVENT_CHART_CHANGE |
Modifica della grandezza del grafico o modifica delle proprietà del grafico tramite la finestra delle Proprietà |
CHARTEVENT_CUSTOM |
Numero iniziale di un evento da una serie di eventi personalizzati |
CHARTEVENT_CUSTOM_LAST |
Il numero finale di un evento di una serie di eventi personalizzati |
evento CHARTEVENT_KEYUP
L'evento CHARTEVENT_KEYUP si verifica quando un utente rilascia un tasto mentre la finestra del grafico ha il focus di input. Questo evento integra l'esistente CHARTEVENT_KEYDOWN, che viene generato quando viene premuto un tasto. L'utilizzo di entrambi gli eventi ci consente di determinare con precisione quando i tasti vengono premuti e rilasciati, il che è utile quando si creano interfacce utente e strumenti con controlli interattivi.
void OnChartEvent(const int id,
|
lparam contiene (KeyCode) simile all'evento CHARTEVENT_KEYDOWN. Utilizzare la funzione TranslateKey() per ottenere la rappresentazione testuale di un tasto.
Gestione dei tasti morti
È supportata la gestione dei cosiddetti "tasti morti". Si tratta di tasti che non inseriscono immediatamente un carattere, ma modificano l'aspetto del carattere successivo inserito. Ad esempio, nel formato Greco il tasto ; viene utilizzato per porre l'accento sulle vocali (ά, έ, ύ ecc.).
Ora tali tasti possono essere tracciati utilizzando la funzione TranslateKey() nei gestori CHARTEVENT_KEYDOWN e CHARTEVENT_KEYUP. Ciò consente il corretto rilevamento della pressione e del rilascio di combinazioni di tasti complesse in configurazioni multilingue.
void OnChartEvent(const int id,
|
La gestione dei tasti morti è utile quando si implementano campi di testo personalizzati, sistemi di tasti di scelta rapida e interfacce che rispondono a configurazioni di tastiera internazionali.
Input della funzione OnChartEvent
Per ciascun tipo di evento, i parametri di input della funzione OnChartEvent() hanno valori definiti che sono necessari per l'elaborazione di questo evento. Gli eventi ed i valori passati attraverso questi parametri sono elencati nella tabella seguente.
Evento |
Valore del parametro id |
Valore del parametro lparam |
Valore del parametro dparam |
Valore del parametro sparam |
|---|---|---|---|---|
Evento di rilascio tasto |
CHARTEVENT_KEYUP |
Codice tasto rilasciato |
Il numero di ripetizioni dell'evento è sempre 1 |
Un valore stringa bitmask che descrive lo stato dei tasti modificatori. Vedi Messaggio WM_KEYUP |
Evento di pressione dei tasti |
CHARTEVENT_KEYDOWN |
Codice del tasto premuto |
Numero di ripetizioni dell'evento mentre un tasto rimane premuto |
Un valore stringa bitmask che descrive lo stato dei tasti modificatori. Vedi WM_KEYDOWN message |
Eventi del mouse (se CHART_EVENT_MOUSE_MOVE=true è impostato per il grafico) |
CHARTEVENT_MOUSE_MOVE |
la coordinata X |
la coordinata Y |
Il valore di stringa di una maschera di bit che descrive lo stato dei pulsanti del mouse |
Evento rotellina del mouse (se CHART_EVENT_MOUSE_WHEEL=true per il chart) |
CHARTEVENT_MOUSE_WHEEL |
Flag di status di tasti e pulsanti del mouse, le coordinate X e Y del puntatore del mouse. Vedere la descrizione nell' esempio sotto |
Il valore Delta della rotellina del mouse |
— |
evento di creazione di oggetti grafici (se CHART_EVENT_OBJECT_CREATE=true è impostato per il grafico) |
CHARTEVENT_OBJECT_CREATE |
— |
— |
Nome dell'oggetto grafico creato |
Evento di cambiamento di proprietà di un oggetto attraverso la finestra delle proprietà |
CHARTEVENT_OBJECT_CHANGE |
— |
— |
Nome dell'oggetto grafico modificato |
Evento di eliminazione oggetto grafico (Se CHART_EVENT_OBJECT_DELETE=true è impostato per il grafico) |
CHARTEVENT_OBJECT_DELETE |
— |
— |
Nome dell'oggetto grafico eliminato |
Evento di un click del mouse sul chart |
CHARTEVENT_CLICK |
la coordinata X |
la coordinata Y |
— |
Evento di un clic del mouse in un oggetto grafico appartenente alla tabella |
CHARTEVENT_OBJECT_CLICK |
la coordinata X |
la coordinata Y |
Nome dell'oggetto grafico, in cui l'evento si è verificato |
Evento di trascinamento di un oggetto grafico con il mouse |
CHARTEVENT_OBJECT_DRAG |
— |
— |
Nome dell'oggetto grafico spostato |
Evento di fine modifica del testo nella casella di immissione dell'oggetto grafico LabelEdit |
CHARTEVENT_OBJECT_ENDEDIT |
— |
— |
Nome dell' oggetto grafico LabelEdit, in cui la modifica del testo è stata completata |
Evento di cambiamento della grandezza del chart o modifica delle proprietà del chart tramite la finestra delle Proprietà |
CHARTEVENT_CHART_CHANGE |
— |
— |
— |
ID dell'evento dell'utente con il numero N |
CHARTEVENT_CUSTOM+N |
Valore impostato dalla funzione EventChartCustom() |
Valore impostato dalla funzione EventChartCustom() |
Valore impostato dalla funzione EventChartCustom() |
Esempio:
#define KEY_NUMPAD_5 12
|
Per l'evento CHARTEVENT_MOUSE_MOVE il parametro stringa @param contiene informazioni sullo stato della tastiera e dei pulsanti del mouse:
Bit |
Descrizione |
|---|---|
1 |
Stato del tasto sinistro del mouse |
2 |
Stato del tasto destro del mouse |
3 |
Stato del pulsante SHIFT |
4 |
Stato del pulsante CTRL |
5 |
Stato del pulsante centrale del mouse |
6 |
Stato del primo pulsante del mouse in più |
7 |
Stato del secondo tasto del mouse in più |
Esempio:
//+------------------------------------------------------------------+
|
Per l'evento CHARTEVENT_MOUSE_WHEEL, i parametri lParam e dparam contengono informazioni sugli stati dei tasti Ctrl e Shift, dei pulsanti del mouse, delle coordinate del cursore e del valore di scorrimento della rotellina del mouse. Per una migliore comprensione, esegui questo Expert Advisor su un chart e scorri la rotellina del mouse, mentre premi diversi bottoni e tieni premuti i tasti descritti nel codice.
Esempio diCHARTEVENT_MOUSE_WHEEL event processing:
//+------------------------------------------------------------------+
|
Vedi anche