Diskussion zum Artikel "Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Bildlaufleiste"

 

Neuer Artikel Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Bildlaufleiste :

In den bisherigen Beiträgen zum Programmieren in MQL5 wurde zum Anlegen von Aufstellungen (Listen) das grafische Objekt OBJ_LABEL (Beschriftung) verwendet. Diesmal werden wir uns zur Wiedergabe von Text einer „Leinwand“ bedienen. Der Reiz dieser Herangehensweise besteht darin, dass statt einer Menge von Objekten der Art OBJ_LABEL nur ein einziges Objekt benötigt wird: OBJ_BITMAP_LABEL (grafisches Element). Es können beliebige Elemente der Benutzeroberfläche auf die Leinwand gezeichnet werden, aber wir beschränken uns hier auf die Ausgabe von Text.

Wir setzen das Studium der Steuerelemente fort und kommen diesmal zur Bildlaufleiste, dem Scrollbar. Genauso wie schon in dem vorhergehenden Beitrag „Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Schaltflächen“ arbeiten wir in dem Unterfenster für den Indikator. Den genannten Beitrag sollte man gelesen haben, da in ihm die Arbeit mit Ereignissen in der Funktion OnChartEvent() ausführlich dargelegt wird, während diese hier nur oberflächlich gestreift wird. Als Beispiel wird in diesem Beitrag eine senkrechte Bildlaufleiste für eine lange Aufstellung aller mit den Möglichkeiten der Programmiersprache MQL5 zu beziehenden Kenngrößen eines Finanzinstrumentes angelegt.

Die Bildlaufleiste gestalten wir möglichst schlicht. Für gewöhnlich werden ihr Schaltflächen mit Pfeilen zugeordnet, aber darauf verzichten wir hier. Die Bildlaufleiste besteht lediglich aus einem Hintergrund und einem „Schieber“. Letzterer ändert seine Farbe, wenn der Mauszeiger ihn überfährt. Wird er angeklickt. ändert er seine Farbe ebenfalls, um dem Anwender anzuzeigen, dass er bewegt werden kann. Zum Anlegen der Laufleistenelemente verwenden wir grafische Objekte der Art OBJ_RECTANGLE_LABEL (rechteckige Markierung).

MQL5 Cookbook: Indicator Subwindow Controls - Scrollbar

Autor: Anatoli Kazharski

 
In letzter Zeit habe ich alle Artikel von Anatoli verfolgt und ich muss sagen, er ist ein großartiger Programmierer. Darüber hinaus teilt er sein Wissen mit anderen, die neue MT5-Programmiersprache, wie ich, die ich denke, ist eine großzügige Bewegung. Ich hoffe, in Zukunft mehr Artikel werden von Anatoli veröffentlicht werden.
 

Anatoly, ich danke dir für deine Arbeit und Mühe!

Ich habe eine Frage, gibt es ein Beispiel für die Verwendung der CScroll-Klasse aus der Standard-Scrolls. mqh-Bibliothek?

 
thejobber:

Anatoly, ich danke dir für deine Arbeit und Mühe!

gibt es ein Beispiel für die Verwendung der CScroll-Klasse aus der Standardbibliothek Scrolls.mqh?

Danke!

Ich verwende die Standardbibliothek nicht, um Schnittstellen mit Steuerelementen zu entwickeln.

 
thejobber:

Anatoly, ich danke dir für deine Arbeit und Mühe!

eine solche Frage, gibt es ein Beispiel für die Verwendung der Klasse CScroll? aus der Standardbibliothek Scrolls.mqh.

Es gibt ein Beispiel in der Standardauslieferung


 
Danke, ich habe noch an diesem Beispiel gedreht.... Ich habe es nicht bemerkt, ich war dumm, mit einem Wort ))
 
Ich muss die Visualisierungslogik ein bisschen umgestalten... Ich war die Erstellung von Etiketten, und ihre Anzahl war nicht bekannt, bevor, ich dachte, um eine Bildlaufleiste in das Formular hinzufügen, jetzt wird es noch einfacher, es wird ein CListView-Objekt sein. gab mir eine gute Idee ))
 
Kann ich die Farbe eines einzelnen Elements in einer CListView ändern?
 

Hallo

MetaQuotes:

Neuer Artikel MQL5 Cookbook: Indicator Subwindow Controls - Scrollbar ist veröffentlicht worden:

Autor: Anatoli Kazharski

Hallo Anatoli Kazharski

Auch wenn das Thema schon so alt ist, wollte ich mich bei dir für die tolle und hilfreiche Arbeit bedanken.

Ich brauchte die Scrollbar, aber ich konnte sie nur in den ListViews verwendet finden, aber hier konnte ich die Scrollbar-Funktionen herausziehen und sie verwenden.

Mir ist nur aufgefallen, dass dieser Teil zwar logischerweise immer funktioniert, aber vielleicht nicht das ist, was Sie schreiben wollten:

//+------------------------------------------------------------------+
Ändern der Farbe der Scrollbox, wenn der Mauszeiger darüber schwebt //|
//+------------------------------------------------------------------+
void ChangeScrollbarThumbColorOnHover(int x,int y)
  {
//--- Befindet sich der Cursor im Bereich des Rollfelds, wird die Farbe dunkler
   if(x>scrollbar_thumb_x1 && x<scrollbar_thumb_x2 && y>scrollbar_thumb_y1 && y<scrollbar_thumb_x2)

      SetScrollbarThumbColor(scrollbar_thumb_color_on_hover);
//--- Wenn sich der Cursor außerhalb der Begrenzungen des Bildlauffeldes befindet
   else
     {
      //--- Wenn die Maustaste losgelassen wird, wird die Standardfarbe des Bildlauffeldes eingestellt
      if(!mouse_button_state)
         SetScrollbarThumbColor(scrollbar_thumb_color);
     }
  }

Nochmals vielen Dank für die tolle Arbeit.