Discussione sull’articolo "Manuale MQL5: Controlli della finestra secondaria degli indicatori - Barra di scorrimento"

 

Il nuovo articolo Manuale MQL5: Controlli della finestra secondaria degli indicatori - Barra di scorrimento è stato pubblicato:

Continuiamo ad esplorare i vari controlli e questa volta rivolgiamo la nostra attenzione alla barra di scorrimento. Proprio come nell'articolo precedente "Manuale MQL5: Controlli della finestra secondaria dell'indicatore - Pulsanti", lavoreremo nella finestra secondaria dell'indicatore. Prenditi un momento per leggere l'articolo sopra menzionato in quanto fornisce una descrizione dettagliata del lavoro con gli eventi nelle OnChartEvent(). Questo argomento verrà solo menzionato in questo articolo. A scopo illustrativo, questa volta creeremo una barra di scorrimento verticale per un ampio elenco di tutte le proprietà degli strumenti finanziari che possono essere ottenute utilizzando le risorse MQL5.

Nei precedenti articoli sulla programmazione MQL5 abbiamo utilizzato l'oggetto grafico OBJ_LABEL (Text Label) per creare le liste. In questo articolo, utilizzeremo una tela per visualizzare il testo. La convenienza di tale approccio risiede nel fatto che invece di un gran numero di OBJ_LABEL, ne useremo solo uno - OBJ_BITMAP_LABEL (Etichetta bitmap). Puoi disegnare qualsiasi elemento dell'interfaccia su una tela, ma questa volta ci limiteremo solo al testo.

La barra di scorrimento sarà molto semplice. Di solito ha pulsanti freccia ma non saranno funzioni nel nostro caso. La barra di scorrimento sarà composta solo dallo sfondo e dalla casella di scorrimento. La casella di scorrimento cambierà colore quando il cursore passa sopra di essa. Quando viene cliccato, cambierà anche colore suggerendo all'utente che la casella di scorrimento è ora selezionata e può essere trascinata. Nella creazione di oggetti a scorrimento, utilizzeremo oggetti grafici del tipo OBJ_RECTANGLE_LABEL (Rectangle Label).

Autore: Anatoli Kazharski

 
Recentemente ho seguito tutti gli articoli di Anatoli e devo dire che è un grande codificatore. Inoltre, ha condiviso le sue conoscenze con altri che sono alle prime armi con il linguaggio di programmazione MT5, come me, e credo che questa sia una mossa generosa. Spero che in futuro Anatoli pubblichi altri articoli.
 

Anatoly, grazie per il tuo lavoro e la tua fatica!

Ho una domanda: c'è qualche esempio di utilizzo della classe CScroll della libreria standard Scrolls.mqh?

 
thejobber:

Anatoly, grazie per il tuo lavoro e la tua fatica!

c'è qualche esempio di utilizzo della classe CScroll della libreria standard Scrolls.mqh?

Grazie.

Non uso la libreria standard per sviluppare interfacce con controlli.

 
thejobber:

Anatoly, grazie per il tuo lavoro e la tua fatica!

una domanda, c'è qualche esempio di utilizzo della classe CScroll? dalla libreria standard Scrolls.mqh.

C'è un esempio nella consegna standard


 
grazie, stava ancora girando questo esempio.... Non l'ho notato, sono stato stupido in una parola ))
 
Dovrò riprogettare un po' la logica di visualizzazione... Stavo creando delle etichette, e il loro numero non era noto prima, stavo pensando di aggiungere uno scroll al form, ora sarà ancora più facile, ci sarà un oggetto CListView. mi ha dato una buona idea ))
 
È possibile modificare il colore di un singolo elemento in una CListView?
 

Ciao

Ciao Anatoli Kazharski

Tuttavia l'argomento è così vecchio, ma volevo ringraziarti per il grande e utile lavoro.

Avevo bisogno della barra di scorrimento, ma non riuscivo a trovarla usata nelle ListView, ma qui sono riuscito a tirare fuori le funzioni della barra di scorrimento e usarle.

Ho solo notato che comunque questa parte logicamente può sempre funzionare, ma potrebbe non essere quello che si intendeva scrivere:

//+------------------------------------------------------------------+
//| Modifica del colore della casella di scorrimento quando il cursore passa sopra |
//+------------------------------------------------------------------+
void ChangeScrollbarThumbColorOnHover(int x,int y)
  {
//--- Se il cursore si trova all'interno dell'area del riquadro di scorrimento, rendere il colore più scuro
   if(x>scrollbar_thumb_x1 && x<scrollbar_thumb_x2 && y>scrollbar_thumb_y1 && y<scrollbar_thumb_x2)

      SetScrollbarThumbColor(scrollbar_thumb_color_on_hover);
//--- Se il cursore è fuori dai confini della casella di scorrimento
   else
     {
      //--- Se il pulsante del mouse viene rilasciato, impostare il colore standard della casella di scorrimento
      if(!mouse_button_state)
         SetScrollbarThumbColor(scrollbar_thumb_color);
     }
  }

Ancora una volta, grazie per il grande lavoro.