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

Grund der Beschwerde: