![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
Ich werde versuchen, eine andere Frage zu stellen, und zwar am Beispiel der Webentwicklung. Denn Ihre grafische Benutzeroberfläche wird mit der von Ihnen erstellten Auszeichnungssprache geschrieben.
Die Webentwicklung hat auch ihre eigene Auszeichnungssprache (HTML) und Stilsprache (CSS). Wenn Sie eine Website nur in HTML erstellt haben, können Sie Steuerelemente in reinem HTML erstellen.
Hier ist ein Beispiel mit einem Kontrollkästchen. Aber in diesem Fall ist die Website tot, weil nichts passiert, wenn die Steuerelemente funktionieren. Damit etwas passiert, müssen Sie einen Handler für jedes Ereignis mithilfe von JavaScript und der Funktion addEventListener erstellen. Hier ist ein Beispiel für einen solchen Handler:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Meine Hauptfrage kann umformuliert werden: Wie implementieren Siefür den Programmierer den Event-Handler, der von der GUI generiert wird, wenn der Benutzer arbeitet.
D.h. was ist Ihr Analogon zu addEventListener ? Wie ich schon sagte, habe ich es dadurch implementiert, dass, wenn die GUI programmatisch generiert wird, jedem Steuerelement seine eigene Event-Handler-Funktion zugewiesen wird, indem einZeiger auf eine Funktion verwendet wird.
NUN GUT.
Ich werde versuchen, eine andere Frage zu stellen, und zwar am Beispiel der Webentwicklung. Denn Ihre grafische Benutzeroberfläche wird mit der von Ihnen erstellten Auszeichnungssprache geschrieben.
Die Webentwicklung hat auch ihre eigene Auszeichnungssprache (HTML) und Stilsprache (CSS). Wenn Sie eine Website nur in HTML erstellt haben, können Sie Steuerelemente in reinem HTML erstellen.
Hier ist ein Beispiel mit einem Kontrollkästchen. Aber in diesem Fall ist die Website tot, weil nichts passiert, wenn die Steuerelemente funktionieren. Damit etwas passiert, müssen Sie einen Handler für jedes Ereignis mithilfe von JavaScript und der Funktion addEventListener erstellen. Hier ist ein Beispiel für einen solchen Handler:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_element_addeventlistener4 Meine Hauptfrage kann umformuliert werden: Wie implementieren Siefür den Programmierer den Event-Handler, der von der GUI generiert wird, wenn der Benutzer arbeitet.
D.h. was ist Ihr Analogon zu addEventListener ? Wie ich schon sagte, habe ich es dadurch implementiert, dass bei der programmatischen Generierung der GUI jedem Steuerelement seine eigene Event-Handler-Funktion zugewiesen wird, indem einZeiger auf die Funktion verwendet wird.
Nicholas, alles funktioniert. Sie werden es später selbst ausprobieren. Alles ist viel einfacher, als Sie denken. Ich habe viele funktionierende Schnittstellen mit dieser Technologie erstellt. Also... Du wirst es bald sehen.
Nikolai, es funktioniert. Du wirst es später selbst ausprobieren. Es ist viel einfacher, als du denkst. Ich habe viele funktionierende Schnittstellen mit dieser Technologie gebaut. Also... Du wirst es bald sehen.
Ich warte. Ich werde warten.
Ich möchte Ihre Schöpfung wirklich verstehen, aber um das Verständnis durch ein Beispiel zu erleichtern, erstellen Sie bitte einen einfachen leeren Indikator (oder Expert Advisor), in dem Ihre GUI in Form einer separaten Schaltfläche verbunden ist, wenn Sie diese drücken, ändert sich die Hintergrundfarbe des Fensters von schwarz zu weiß und von weiß zu schwarz. Es ist nur wünschenswert, dass der Farbwechsel im Indikatorkörper stattfindet und nicht in einer der verbundenen Dateien.
Der Einfachheit halber ist hier der Code der Funktion, die im Programmkörper ausgeführt werden soll, wenn die Schaltfläche gedrückt wird:
Ja, gut. Ich werde warten.
Ich möchte Ihre Schöpfung wirklich verstehen, aber um das Verständnis durch ein Beispiel zu erleichtern, erstellen Sie bitte einen einfachen leeren Indikator (oder Expert Advisor), in dem Ihre GUI in Form einer separaten Schaltfläche verbunden ist, wenn Sie darauf drücken, ändert sich die Hintergrundfarbe des Fensters von schwarz zu weiß und von weiß zu schwarz. Es ist nur wünschenswert, dass der Farbwechsel im Indikatorkörper stattfindet und nicht in einer der verbundenen Dateien.
Der Einfachheit halber ist hier der Code der Funktion, die im Programmkörper ausgeführt werden soll, wenn die Schaltfläche gedrückt wird:
Ok. Ich werde die einfachst mögliche Implementierung zum Verständnis machen. Kein Schnickschnack).
Na gut. Ich werde die einfachst mögliche Implementierung zum Verständnis machen. Kein Schnickschnack).
Sehr gut! Ich danke Ihnen.
Nikolay, ich kann keinen Funktionsaufruf innerhalb des Indikatorkörpers schreiben, da sich sein Handler in der Datei Internal_API.mqh befindet.
Das heißt, ich kann Ihre Funktion beim Drücken der Schaltfläche über den Handler in dieser Datei aufrufen. Allerdings kann ich die Schaltflächenzustände auch programmatisch vom Indikatorkörper aus setzen, z. B. beim Timer-Ereignis. Aber dann brauche ich die Schaltfläche nicht zu drücken. Kurz gesagt, es gibt verschiedene Elemente. Einige von ihnen können innerhalb des Indikatorkörpers behandelt werden (meist nicht-interaktive Elemente, wie z. B. Fortschrittsbalken), und es gibt solche, die einen Handler in der Datei Internal_API.mqh haben und von dort aus arbeiten. Deren Status kann jedoch programmatisch vom EA/Indikator selbst gesetzt werden.
Ihre Aufgabe ist abgeschlossen. (wenn weißes Quadrat - Klick)
Code:
Ich habe deine Funktion auskommentiert, weil der Compiler geflucht hat. Ich habe sie vereinfacht.
Hier ist der Code in der Datei Internal_API.mqh
Übrigens, Sie sollten hinzufügen:
Die Datei Internal_API.mqh enthält Kontrollhandler und ist SPEZIFISCH dafür gedacht, sie zu verbinden.
Diese Datei ist für den Benutzer bestimmt und ist nicht Teil des Motors oder einer meiner anderen Code.
Diese Datei ist für den Benutzer bestimmt und ist nicht Teil der Maschine oder einer meiner anderen Code.
Ich verstehe, Peter.
Danke. Für einen Entwickler ist das natürlich nicht praktisch.
Es gibt eine Menge unnötigen Code und Bewegungen. Dennoch ist die Variante mit einem Zeiger auf eine Funktion viel besser.
Ich verstehe, Peter.
Danke. Für einen Entwickler ist das natürlich nicht bequem.
Es gibt eine Menge unnötigen Code und Bewegungen. Dennoch ist die Variante mit einem Zeiger auf eine Funktion viel besser.