Galerie der in MQL geschriebenen UIs - Seite 18

 
1. Nachdem wir den Konstruktor angeschlossen haben, erstellen wir ein einfaches Fenster.

2. Nach und nach werden wir es komplizierter machen, indem wir neue Elemente hinzufügen.

3. Zunächst lernen wir ein einfaches System zur Erstellung von Gruppen von Elementen.

4. Dann werde ich einfache Prinzipien der Positionierung durch die Angabe von Ankern und Korrekturen zeigen.

5. Dann werden wir verschiedene Eigenschaften von Elementen und Fenstern mit einfachen Worten wie FIC - fixed if clicked, OOI - open on init, V_MIN, V_MAX und STEP - minimum value, maximum value und step, für Eingabefelder mit Schaltflächen und Schiebereglern festlegen. Außerdem werden wir mit dem Schlüsselwort SYNC Wertänderungen zwischen mehreren Steuerelementen synchronisieren. Ein Befehl SWITCH wird verwendet, um das Umschalten von Schaltflächen in einer Gruppe von Elementen zu verknüpfen.

6. Ich werde zeigen, wie einfach es ist, eine Tabelle zu erstellen und beliebige Elemente in diese zu integrieren, indem ich nur zwei Wörter verwende: IS_TABLE.

7. Und vieles, vieles mehr. Die Möglichkeiten der Sprache sind vielfältig und nach 4 Jahren habe ich mir immer noch nicht alles gemerkt. Aber, alles zu seiner Zeit...


 
Eine der Stärken des Designers ist die Möglichkeit, schnell Vorlagen für Fenster, Gruppen und Elemente zu erstellen und zu speichern, so dass Sie beim nächsten Mal ganze Fenster und Gruppen kopieren können, um nur kleine Änderungen vorzunehmen und so die Zeit für die Erstellung der Benutzeroberfläche um 90 Prozent oder mehr zu reduzieren.
 

Kleine technische Panne.


 

Außerdem wurden dem Designer 5 Fenster hinzugefügt, um die Suche und Installation der folgenden Schnittstellenressourcen zu erleichtern:

1. Erforderliche Icons

2. Schriftarten

3. Sounds (sie sind auch über die Auszeichnungssprache verbunden).

4. Frames (Sie können Frames für Elemente festlegen).

5. Farben.

//---------------------------------------------------------------

Hilfsfenster werden sowohl aus der Taskleiste des Konstruktors, als auch aus dem Kontextmenü (per Doppelklick) aufgerufen.

So sieht es aus:


 
Alle Icons sind bereits in den Builder integriert, Schriftarten und Sounds jedoch nicht. Sie können die Schriftarten jedoch in den Windows-Einstellungen aktivieren, und ich werde Ihnen die Sounds in einem Archiv zur Verfügung stellen, das Sie einfach in den Sounds-Ordner in MT5 legen.
 

Wie Sie vielleicht schon bemerkt haben, verfügt der Designer über eine Taskleiste am unteren Rand. Sie können Ihre Fenster minimieren, während Sie an der Oberfläche arbeiten, um den Platz auf Ihren Grafiken zu maximieren.

So sieht sie aus. Registerkarten können verschoben, ausgetauscht und geschlossen werden. Sie werden durch Drücken der linken Maustaste ausgelöst.

 

Der Konstruktor verfügt über ein eigenes Kontextmenü, das durch einen Doppelklick auf ein leeres Diagrammfeld oder auf ein beliebiges benutzerdefiniertes Fenster innerhalb des Diagramms aufgerufen wird.

Hier finden Sie auch die folgenden Funktionen:

1. andere Fenster mit der Funktion "Bring window on top" in den Vordergrund bringen. Dies ist notwendig, wenn ein anderes Fenster mit der Eigenschaft "Immer im Vordergrund" dieses blockiert. In anderen Fällen ist diese Funktion nicht notwendig.

2. Über das Kontextmenü des Konstruktors können Sie ein benutzerdefiniertes Kontextmenü aufrufen, das in der Benutzeroberfläche funktioniert. Auf diese Weise kann es bearbeitet werden oder es können Änderungen angezeigt werden.

3. Über das Kontextmenü des Konstruktors kann eine benutzerdefinierte Taskleiste aufgerufen und mit ihr gearbeitet werden.

4. die Option "Projekt speichern und API-Datei drucken" druckt die erstellte Schnittstelle in eine Datei, um sie mit dem Benutzerprogramm zu verbinden.

5. Die Option "Über das Programm" ruft ein Fenster mit einem Text über den Texter auf.


So sieht es aus:


 
Das war's für heute. Wir sehen uns am Sonntag.
 
Реter Konow # :
Das war's für heute. Wir sehen uns am Sonntag.
Danke, dass Sie dieses Wochenende Ihre Zeit geopfert haben, und ich freue mich auf die Veröffentlichung am Sonntag.
 
Nikolai Semko # :



Nun gut, Sie haben diese Datei nicht zur Verfügung gestellt, deshalb stelle ich Vermutungen an. Warten wir auf die Version mit allen Dateien, um sie live testen zu können.

Ich habe Ihre Konversation durch den Übersetzer Nikolay Semko aufmerksam gelesen. Ich denke, Sie haben Recht, und ich hoffe, dass meine Worte den Autor nicht beleidigen werden, denn Ihre Programmierfähigkeiten sind ausgezeichnet.
Der beste Weg, Ereignisse zu behandeln, ist die Verwendung einer Zeigerimplementierung, die die von der Engine erstellte Datei Internal_API.mqh trennt.
Wenn eine Taste gedrückt oder losgelassen wird, sind das die beiden Ereignisse. Die Engine kann eine Funktion für den Button generieren, z.B. setButton1Click(void* ptr), und diese dann im Ereignis: ptr() des Buttons aufrufen. In seiner EA ist der ptr ein Zeiger auf die Funktion, die in der Datei des Benutzers vollständig ausgeschrieben ist, so dass Internal_API immer noch gut funktioniert, aber keine Änderungen benötigt.
Das ist mein Verständnis, trotzdem warte ich noch auf das Meisterwerk des Autors.