Diskussion zum Artikel "Die Komponenten View und Controller für Tabellen im MQL5 MVC-Paradigma: Container"

 

Neuer Artikel Die Komponenten View und Controller für Tabellen im MQL5 MVC-Paradigma: Container :

In diesem Artikel geht es um die Erstellung eines „Container“ für Steuerelemente, das den Bildlauf seines Inhalts unterstützt. Im Rahmen dieses Prozesses werden die bereits implementierten Klassen von Grafikbibliothekssteuerungen verbessert.

Im Rahmen der Entwicklung des TableView-Steuerelements im MVC-Paradigma (Model-View-Controller) haben wir bereits die Komponente Model – ein Tabellenmodell – erstellt und mit der Erstellung der Komponenten View und Controller begonnen. Im letzten Artikel wurden einfache, aber recht funktionelle Kontrollen erstellt. Komplexe Steuerungen werden aus solchen Elementen zusammengesetzt. Heute werden wir Steuerelementklassen wie Panel, GroupBox und Container schreiben – alle drei Elemente sind Container, auf denen verschiedene Steuerelemente platziert werden können.

  • Das Panel-Steuerelement ist ein Bedienfeld, auf dem eine beliebige Anzahl von anderen Steuerelementen platziert werden kann. Wenn Sie das Bedienfeld zu neuen Koordinaten verschieben, bewegen sich auch alle darauf befindlichen Bedienelemente mit. Das Bedienfeld ist also ein Container für die darauf befindlichen Bedienelemente. Dieses Element verfügt jedoch nicht über Bildlaufleisten, die einen Bildlauf durch den Inhalt des Containers ermöglichen, wenn dieser über die Grenzen des Bereichs hinausgeht. Solche Inhalte werden einfach an den Containergrenzen abgeschnitten.
  • Das GroupBox-Steuerelement ist ein Satz von Elementen, die in einer Gruppe organisiert sind. Es wird vom Panel abgeleitet und ermöglicht die Gruppierung von Elementen nach einem gemeinsamen Zweck, z. B. eine Gruppe von RadioButton-Elementen, wobei nur ein Element aus der gesamten Gruppe ausgewählt werden kann und der Rest der Gruppenelemente abgewählt wird.
  • Die Containersteuerung. Sie ermöglicht es, nur eine Kontrolle an sich selbst zu befestigen. Wenn das angehängte Element über den Container hinausragt, erscheinen Bildlaufleisten am Container. Sie ermöglichen es, durch den Inhalt des Containers zu blättern. Um eine beliebige Anzahl von Steuerelementen in einem Container zu platzieren, ist es notwendig, ein Paneel darin zu platzieren und die gewünschte Anzahl von Steuerelementen an das Paneel anzuhängen. Der Container blättert also durch das Panel, und letzteres verschiebt seinen Inhalt beim Blättern.

Daher müssen wir zusätzlich zu den drei angegebenen Hauptsteuerelementen Klassen für die Erstellung von Bildlaufleisten erstellen – die Daumen-Klasse (Thumb) und die Scrollbar-Klasse (ScrollBar). Es wird zwei solcher Klassen geben – für vertikale und horizontale Bildlaufleisten.

Kompilieren qir den Indikator und lassen ihn auf dem Chart laufen:


Das Umschalten auf Vollbild beim Klicken auf einen Track funktioniert, das Umschalten beim Klicken auf Schaltflächen funktioniert, die automatische Ereigniswiederholung beim Halten von Schaltflächen funktioniert, das Scrollen mit dem Rad funktioniert.


Autor: Artyom Trishkin

 
Ich bin mir nicht sicher, was passiert ist, aber wenn ich den ursprünglichen Code baue und ausführe, wird er nicht wie unten im Artikel beschrieben angezeigt.
Dateien:
Pic_.jpg  571 kb
 
Nguyen Tuấn Anh #:
Ich bin mir nicht sicher, was passiert ist, aber wenn ich den ursprünglichen Code baue und ihn ausführe, zeigt er etwas anderes an als das, was unten im Artikel beschrieben ist.

Entfernen Sie den Indikator aus dem Chart. Drücken Sie Strg+B, klicken Sie in dem sich öffnenden Fenster mit der Liste der grafischen Objekte auf "Alle" und löschen Sie alle Objekte. Starten Sie dann den Indikator erneut.

Es wäre jedoch besser, zu spezifizieren, was im Protokoll steht - höchstwahrscheinlich gab es einen Fehler beim Erstellen der Objekte.