
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
Beispiel für einen einfachen Code:
Alles, was einmal begonnen wurde, muss zu Ende gebracht werden. Auch wenn es niemand braucht. Das ist der Grundsatz.
Sie brauchen es. Wenn die Schnittstelle nicht nur gezeichnet, sondern auch benutzt werden kann. Ich hoffe es.
Bedarf. Wenn die Schnittstelle nicht nur gezeichnet, sondern auch benutzt werden kann. Hoffentlich.
Auf jeden Fall. Das ist es, woran ich arbeite.
Diesen Zweig in mehreren Sprachen zu duplizieren, ist natürlich eine harte Prüfung für Nicht-Russisch-Sprecher. Darf ich Ihnen ein paar Fragen stellen? Da Ihre GUI ohne die Verwendung von Klassen erstellt wird, ergeben sich gleich mehrere Unklarheiten. Denn was sollten die ersten Anforderungen an die GUI als Produkt sein? Es ist die Bequemlichkeit und Intuitivität der Erstellung einer GUI, sowie ihre bequeme Verwendung im Arbeitsprozess. In dieser Hinsicht:
Frage 1
Welchen Mechanismus gibt es für einen Programmierer, um die Ereignisbehandlung auf der Seite Ihrer GUI zu handhaben? In meinen GUIs füge ich zum Beispiel beim Erstellen einesSteuerelements einen Zeiger auf eine Handler-Funktion hinzu, wenn ein Änderungsereignis auf diesem Steuerelement auftritt. Beispielcode:
Frage 2
Wie kann ein Programmierer auf den Zustand eines bestimmten GUI-Elements zugreifen? In meiner GUI kann ich zum Beispiel den Zustand eines Kontrollkästchens (bool) wie folgt abrufen: .
aber ich verwende verschachtelte Klassen. Wie machen Sie das?
Frage 2
Wie kann ein Programmierer auf den Zustand eines bestimmten GUI-Elements zugreifen? In meiner GUI kann ich z. B. den Zustand eines Kontrollkästchens (bool) wie folgt abrufen: aber ich verwende verschachtelte Klassen. Wie machen Sie das?
Hallo Nicholas!
Ich werde der Reihe nach antworten:
1. Der Benutzer interagiert NICHT (vom Wort her überhaupt nicht) mit meinem Code. Es ist nicht notwendig. Weiter werden Sie verstehen, warum. Der Benutzer braucht NUR die Auszeichnungssprache. (Ich habe dies schon mehrmals betont, aber ich bekomme diese Frage immer wieder von Programmierern gestellt. ) Der Grund dafür ist, dass der Benutzer das Array nur mit Schlüsselwörtern "initialisiert", die durch Defines im Konstruktorcode definiert sind. Der Interpreter (Indikator) sendet ein Array mit dem Markup-Code (den ich oben gezeigt habe) an den Konstruktor (der der EA auf demselben Diagramm ist), und der Konstruktor liest das Array und baut die grafische Benutzeroberfläche auf. Der Markup-Sprachcode ist eine Anweisung für den Konstruktor. Er führt die Konstruktion (Zeichnen, Initialisierung der Elementparameter, Einstellungen usw.) entsprechend dieser Anweisung durch.
2. Der Mechanismus ist einfach. Nach Beendigung der Bearbeitung der Schnittstelle ruft der Benutzer durch Doppelklick auf das Diagramm das Kontextmenü des Konstruktors auf und wählt die Option "Speichern". Der Konstruktor gibt alle Informationen in zwei Dateien aus. Diese Dateien werden von der Engine verwendet.
Lassen Sie mich das im Detail erklären: Der Benutzer verbindet die beiden Dateien, die er vom Konstruktor und der Engine (die ich zur Verfügung stellen werde) erhält, mit seinem EA (in der Kopfzeile des EA. Ich werde ein Beispiel für die Verbindung liefern). Dann schreibt er mehrere Aufrufe in den Funktionen OnInit(), OnTimer(), OnChartEvent() und OnDeinit() (ich werde ein Beispiel liefern). Als nächstes wird eine Datei namens Internal_API vom Konstruktor gedruckt. Diese Datei enthält alles, was notwendig ist, um GUI-Steuerelemente mit dem Expert Advisor/Benutzerindikator zu verbinden. Das heißt - generierte Funktionen der Elemente und detaillierte Anweisungen. Ich werde später Beispiele für die Verbindung liefern.
Nochmals, nichts Kompliziertes. Es ist alles vorhanden. Hier ist zum Beispiel, wie es mit der obigen Schnittstelle aussieht:
1. Schrieb ein Fenster.
2. Befolge die unten stehenden Anweisungen:
3.
4. öffnen Sie die InternalAPI-Datei und starten Sie die Verbindung. Die Datei enthält alles.
DerBenutzer muss nur seine Aktionen in die Bedingungen der OnGuiEvent()-Funktion schreiben. Der Rest muss NICHT angefasst werden. .
Das Umschalten des Zustands von Steuerelementen sowie das Erhalten/Einstellen ihrer Werte erfolgt mit Hilfe von Funktionen, die vom Konstruktor generiert werden und die der Benutzer in der Intellisense sehen kann.
Aus dem obigen Dateicode geht hervor, dass der Benutzer nur mit diesem Teil arbeitet:
Nicholas, hallo!
Ich werde der Reihe nach antworten:
1. Der Benutzer wird NICHT (vom Wort her überhaupt nicht) mit meinem Code interagieren. Das ist nicht notwendig. Als nächstes werden Sie verstehen, warum. Der Benutzer braucht NUR die Auszeichnungssprache. (Ich habe dies schon mehrmals betont, aber ich bekomme diese Frage immer wieder von Programmierern gestellt. ) Der Grund dafür ist, dass der Benutzer das Array nur mit Schlüsselwörtern "initialisiert", die durch Defines im Konstruktorcode definiert sind. Der Interpreter (Indikator) sendet ein Array mit dem Markup-Code (den ich oben gezeigt habe) an den Konstruktor (der der EA im selben Diagramm ist), und der Konstruktor liest das Array und baut die grafische Benutzeroberfläche auf. Der Markup-Sprachcode ist eine Anweisung für den Konstruktor. Er führt die Konstruktion (Zeichnen, Initialisierung der Elementparameter, Einstellungen usw.) entsprechend durch.
2. Der Mechanismus ist einfach. Nach Beendigung der Schnittstellenbearbeitung ruft der Benutzer durch Doppelklick auf das Diagramm das Kontextmenü des Konstruktors auf und wählt die Option Speichern. Der Konstruktor gibt alle Informationen in zwei Dateien aus. Diese Dateien werden von der Engine verwendet.
Lassen Sie mich das im Detail erklären: Der Benutzer verbindet die beiden Dateien, die er vom Konstruktor und der Engine (die ich zur Verfügung stellen werde) erhält, mit seinem EA (in der Kopfzeile des EA. Ich werde ein Beispiel für die Verbindung liefern). Dann schreibt er mehrere Aufrufe in den Funktionen OnInit(), OnTimer(), OnChartEvent() und OnDeinit() (ich werde ein Beispiel liefern). Als nächstes wird eine Datei namens Internal_API vom Konstruktor gedruckt. Diese Datei enthält alles, was notwendig ist, um GUI-Steuerelemente mit dem Expert Advisor/Benutzerindikator zu verbinden. Das heißt - generierte Funktionen der Elemente und detaillierte Anweisungen. Ich werde später Beispiele für die Verbindung liefern.
Nochmals, nichts Kompliziertes. Es ist alles vorhanden. Hier ist zum Beispiel, wie es mit der Schnittstelle oben aussieht:
1. Wir haben ein Fenster geschrieben.
2. Befolgen Sie die unten stehenden Anweisungen:
3.
4. Öffnen Sie die InternalAPI-Datei und starten Sie die Verbindung. Die Datei enthält alles.
DerBenutzer muss nur seine Aktionen in den Bedingungen der OnGuiEvent()-Funktion angeben. Der Rest muss NICHT angefasst werden.
Das Umschalten des Zustands der Steuerelemente und das Abrufen/Einstellen ihrer Werte erfolgt mit Hilfe von Funktionen, die vom Konstruktor generiert werden und die der Benutzer in der Intellisense sehen kann.
Peter, ich verstehe dich nicht.
Du hast die Fragen nicht beantwortet. Es ist wichtig für Programmierer zu wissen, wie man mit der GUI während der Arbeit interagiert. Hier ist ein Beispiel für meine GUI. Ich habe auf die Tastenkombination für das helle/dunkle Thema geklickt, und dieses Ereignis hat sofort die Funktion zum Ändern der Hintergrundfarben und der Linien ausgelöst. Wie machen Sie diese Interaktion?
Was bedeutet "Der Benutzer interagiert NICHT (überhaupt) mit meinem Code " ? Der Programmierer muss nicht mit dem Code interagieren, sondern mit den Ereignissen, die diesen Code erzeugen sollen. Schließlich ist die GUI kein eigenständiges, unabhängiges Programm. Die GUI muss letztlich mit dem Hauptprogramm des Entwicklers interagieren. Ob es sich nun um einen Indikator oder einen EA handelt.
Pjotr, ich verstehe dich nicht.
Sie haben die Fragen nicht beantwortet. Für Programmierer ist es wichtig zu wissen, wie sie während der Arbeit mit ihrer GUI interagieren können. Hier ist ein Beispiel für meine GUI. Ich habe auf die Tastenkombination für das helle/dunkle Thema geklickt, und dieses Ereignis hat sofort die Funktion zum Ändern der Hintergrundfarben und der Linien ausgelöst. Wie machen Sie diese Interaktion?
Was bedeutet "Der Benutzer interagiert NICHT (überhaupt nicht) mit meinem Code " ? Der Programmierer muss nicht mit dem Code interagieren, sondern mit den Ereignissen, die der Code erzeugen soll.
Das ist gut. Ich werde versuchen, zur Verdeutlichung nur Bilder zu verwenden.
1.
2.
3.
4.
Unser Optionsblatt und das Kontrollkästchen im Fenster und die Internal_API-Datei:
5. Ausführen von Aktionen auf dem Fenster und Elementen im Benutzercode:
6.
INTELLISENSE SAGT UNS ALLES!!!