Diskussion zum Artikel "MQL als Darstellungsmittel für graphische Schnittstellen von MQL-Programmen. Teil 2"

 

Neuer Artikel MQL als Darstellungsmittel für graphische Schnittstellen von MQL-Programmen. Teil 2 :

In diesem Beitrag wird die neue Konzeption zur Beschreibung der Fenster-Schnittstelle von MQL-Programmen anhand der Strukturen von MQL weiter überprüft. Die automatische Erstellung einer GUI auf der Grundlage des MQL-Markups bietet zusätzliche Funktionalität für die Zwischenspeicherung und dynamische Generierung der Elemente und die Steuerung der Stile und neuen Schemata für die Verarbeitung der Ereignisse. Beigefügt ist eine erweiterte Version der Standardbibliothek von Steuerelementen.

Wir können jedes Schnittstellenelement löschen, das im Cache verfügbar ist, d.h. nicht nur diejenigen, die durch die Schaltfläche Einfügen hinzugefügt wurden. Auf diese Weise können Sie z.B. die gesamte linke Hälfte oder die rechte "radiobox" löschen. Am interessantesten wird es, wenn wir versuchen, den oberen Container mit zwei Schaltflächen zu löschen. Das hat zur Folge, dass die Schaltfläche Exportieren nicht mehr an den Dialog gebunden ist und im Diagramm verbleibt.

Editierbares Formular: Hinzufügen und Löschen von Elementen

Editierbares Formular: Hinzufügen und Löschen von Elementen

Dies geschieht, da es das einzige Element ist, das absichtlich als automatische und nicht als dynamische Variable beschrieben wird (in der Formularklasse gibt es eine Instanz von CButton, m_button3).

Wenn die Standardbibliothek versucht, Schnittstellenelemente zu löschen, delegiert sie dies an die Array-Klasse CArrayObj, die wiederum den Zeigertyp prüft und nur Objekte mit POINTER_DYNAMIC löscht. Damit wird deutlich, dass zur Konstruktion einer adaptiven Schnittstelle, bei der Elemente sich gegenseitig ersetzen oder vollständig gelöscht werden können, eine dynamische Platzierung wünschenswert ist, und der Cache bietet hierfür eine fertige Lösung.

Autor: Stanislav Korotky

Grund der Beschwerde: