![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
4. Navigation durch die Listen der einzelnen Elementeigenschaften.
//-----------------------------------------------------------------------------------------
Ich möchte Sie an die Liste der zu berücksichtigenden Themen erinnern:
1. die Orientierung in der Liste von intellisense und die Auswahl der Funktion des richtigen Fensters.
2. Programmgesteuertes Öffnen und Schließen von Fenstern.
3. sich in der Liste von intellisense zu orientieren und die richtige Funktion im richtigen Fenster auszuwählen.
4. Navigieren durch die Listen der einzelnen Elementeigenschaften.
5. Parsen des Namens einer Element- und Fenster-Wrapper-Funktion.
6.Rückgabe des Parameterwertes eines ausgewählten Elements an eine Variable seines Typs. Betrachtung von drei Typen mehrerer verschiedener Elemente.
7. Setzen von Werten in den Parametern verschiedener Typen von Elementen. Schauen wir uns an, wie die Werte in den Oberflächenfenstern dieser Elemente erscheinen werden.
8. Rückgabe der Parameterwerte eines Elements, Änderung und Weiterleitung dieses Werts an ein anderes Element. Betrachten Sie verschiedene Arten von Elementen und Werten, und testen Sie die Weiterleitung zwischen verschiedenen Arten von Elementen in verschiedenen Fenstern.
9. Rückgabe des letzten Wertes (_V_LAST). Wann und für welche Fälle wird der letzte Wert benötigt (nicht zu verwechseln mit dem aktuellen Wert).
10. Testen Sie die Einstellung der Zustände ON/OFF/LOCK_ON/LOCK_OFF/LOCK/UNLOCK für verschiedene Arten von Elementen.
11. Versuchen Sie, die Änderungen der Werte von Elementen verschiedener Typen zu verknüpfen und zu synchronisieren: z.B. Eingabefeld mit Schaltflächen und Schieberegler. Nehmen wir an, dass, wenn sich der Wert eines Elements (manuell oder Software) ändert, sich der Wert im zweiten Element entsprechend ändert.
12. Versuchen wir, die Bereichsgrenzen des Schiebereglers und des Eingabefeldes mit Schaltflächen über Wrapper-Funktionen programmatisch zurückzusetzen. Ich hatte noch keine Zeit, das zu testen, aber etwas deutet darauf hin, dass es funktionieren wird. Wie auch immer, schauen wir mal.
13. Versuchen wir, Elementzustände über Wrapper-Funktionen zurückzugeben. Das ist in der Funktionalität enthalten, aber ich hatte noch keine Zeit, es zu testen. Wir werden also sehen... Das Ergebnis ist unbekannt.
14. Lassen Sie uns die Farben für Text und Elementbasen abrufen und setzen. Wir können versuchen, diese Farben mit einigen einfachen Ereignissen oder Wertgrenzen zu verknüpfen.
15. Ich erzähle Ihnen mehr darüber, wie Sie den Ausdruck der neuen API-Datei navigieren und lesen können.
//------------------------------------------
Gelbe Farbe kennzeichnet Themen, die bereits behandelt wurden.
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
//--------------------------------------------------------------------------------------------------------------
Hervorhebung hinzugefügt:
Jede Wrapper-Funktion akzeptiert nur Eigenschaften, die das Präfix in ihrem Namen enthalten.
So sieht die Arbeit mit Listen in der Praxis aus(setzen Sie die Klammern ans Ende, da Intellisense innerhalb der Klammern von Wrapper-Funktionen nicht funktioniert):
Das gif ist leicht beschleunigt.
Als Ergebnis der im Gif gezeigten Aufrufe geben die Wrapper-Funktionen die Werte der angegebenen Eigenschaften zurück.
Vor dem Aufruf müssen Sie eine Variable deklarieren, um den Wert der Eigenschaft oder das Ergebnis der Funktionsausführung zu speichern. Weitere Informationen hierzu finden Sie in den folgenden Themen.
5.
Analysieren des Namens des Elements und der Fensterumschließungsfunktion:
1. Name der Element-Wrapper-Funktion:
Schauen wir uns das Beispiel der Funktion für das Element EDIT Texteingabefeld an: w7_s_p4_EDIT_Comment_1();
//-------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
/ / - ------------------------------------------------------------
//-------------------------------------------------------------
//-------------------------------------------------------------
2. Der Name der Window-Wrapper-Funktion:
Betrachten wir eine andere Funktion als Beispiel: w_15_Processing_the_data();
//-------------------------------------------------------------
) // - ------------------------------------------------------------
//-------------------------------------------------------------
Es ist anzumerken, dass die Fensterfunktion noch nicht über ein Präfix zum Öffnen der Eigenschaftsliste verfügt. Diese Funktion wird auf jeden Fall erscheinen. Es wird eine spezielle Liste von Fenstereigenschaften erstellt, die zurückzugeben/zu setzen sind, und es wird ein Präfix zugewiesen. Auch die Fensterfunktion enthält noch keinen Buchstaben für den Rückgabetyp.
Im Moment kann die Funktion nur ein Fenster öffnen oder schließen.
Diese Fehler werden in der nächsten Version behoben.
Es wird empfohlen, diese Ausbildungsinformationen einmal privat und separat zusammenzufassen, da sie sonst in Zukunft die Kommentare überfluten werden
6.den Wert desParameters oder der Eigenschaft an eine Variable des gewünschten Typszurückgeben:
Der Typ des Elementparameters(int, double oder string) bestimmt den Typ der Elementfunktion.
Es ist bekannt, dass Elementfunktionen den Wert des Parameters mit einem der drei Typen zurückgeben: int, double oder string.
Die Funktionen geben jedoch auch Eigenschaftswerte zurück...
Es entsteht eine Situation, in der der Typ des Parameterwerts nicht mit dem Typ der Eigenschaften übereinstimmt, die immer int sind .Es stellt sich heraus, dass Funktionen Eigenschaftswerte des falschen Typs zurückgeben, z. B. double oder string anstelle von int. Diese erzwungene Unannehmlichkeit ist der Preis für die Universalität von Funktionen.
Die Aufgabe des Benutzers ist es den empfangenen Wert selbst in den gewünschten Typ umzuwandeln..
Ich möchte betonen: Der Haupttyp aller Elementeigenschaften ist int.
Schauen wir uns die Frage-Antwort-Beispiele genauer an:
Der Typ des Parameterwerts bestimmt den Typ der Funktion des Elements.
Und wenn die Schiebereglerfunktion den Typ int zurückgibt, bedeutet dies, dass der Benutzer selbst bei der Erstellung des Elements den Parametern oder Eigenschaften Ganzzahlen zugewiesen hat - zum Beispiel, indem er den Schiebereglerbereich oder Eingabefelder mit Schaltflächen in Ganzzahlwerten platziert hat. .
Fazit: Die Aufgabe des Benutzers ist es, die erhaltenen Werte in den gewünschten Typ zu konvertieren.
Betrachten wir nun einige praktische Beispiele:
1.
//------------------------------------------------------------------------------------------------------------
2.
//------------------------------------------------------------------------------------------------------------
3.
Siehe das Ergebnis:
//------------------------------------------------------------------------------------------------------------
4.
//------------------------------------------------------------------------------------------------------------
5.
Sehen Sie das Ergebnis:
Als nächstes testen wir das Abrufen und Setzen anderer Element- und Parametereigenschaften. Versuchen wir auch, mit dem Typ double zu arbeiten.
Ich bin dem Code gefolgt und habe ihn getestet. Dabei habe ich eine unerwartete Sache gefunden, die nicht automatisch ausgeblendet wird, wenn die Länge der zufälligen Zeichenfolge zu lang ist
w7_s_p4_EDIT_Comment_1("Some random text AAAAAAAA");
Ich habe ein fatales Problem für mich gefunden, das darin besteht, dass der Text, den ich eintippe, auf der grafischen Benutzeroberfläche in horizontaler Ausrichtung ...... um 90 Grad gedreht angezeigt wird, wie es normal ist: