Crowdsourced GUI. Offene Betatests. - Seite 30

 
Alexandr Andreev:

Es ist doch auch durch eine Funktion implementierbar, die aufgerufen wird, wenn das Feld gefüllt ist und der Eingabewert vom Typ Vorlage ist... alles. Auch wenn es wie String ist.... es wird weiterhin keine Hochgeschwindigkeitsbefüllung des Feldes geben

Es geht nicht nur um das Eingabefeld. Sie möchten zum Beispiel den aktuellen Wert eines Kontrollkästchens abfragen - also prüfen, ob es markiert ist oder nicht.
Oder finden Sie heraus, welcher Artikel in der Checkout-Liste ausgewählt ist.
Oder finden Sie heraus, auf welcher Markierung der Schieberegler steht.
Oder, welchen Wert der Fortschrittsbalken hat.
Und so weiter.
Durch denAufruf der Funktionselemente können Sie nicht nur deren Wert jederzeit abrufen, sondern auch einen neuen Wert setzen.
Sie können auch die Farbe und den Status (gedrückt, gedrückt, gesperrt) einstellen. Ein einzelner Elementfunktionsaufruf ermöglicht jede dieser Aktionen an einer beliebigen Stelle im Benutzercode.
 
Реter Konow:
Es geht nicht nur um das Eingabefeld. Sie müssen z. B. den aktuellen Wert eines Kontrollkästchens ermitteln und prüfen, ob es aktiviert ist oder nicht.
Oder finden Sie heraus, welches Element in der Pop-up-Liste ausgewählt ist.
Oder finden Sie heraus, auf welcher Markierung der Schieberegler steht.
Oder, welchen Wert der Fortschrittsbalken hat.
Und so weiter.
Durch den Aufruf von Elementfunktionen können Sie nicht nur deren Wert jederzeit abrufen, sondern auch einen neuen Wert setzen.
Oder Farbe, Zustand (gedrückt, niedergedrückt, gesperrt). Der Aufruf einer Einzelelementfunktion ermöglicht jede dieser Aktionen an jeder beliebigen Stelle des Benutzercodes.

All dies ist einfach auch durch einen Funktionsaufruf auf die Tatsache der Einstellung. und weiter die Arbeit des Programmierers.


In Bezug auf die Umgebung würde ich gerne einen bestimmten Satz von Aufrufstandards (ohne Änderung des Funktionsnamens - denn ich weiß nicht, in welchem Stück Code ich diese oder jene Funktion brauche) für alle Arten von Lesezeichen und Fenstern sehen. Sowie die Auswahl des Stils durch Farbwechsel beim Hovern.

Das heißt, Sie müssen einen Menüprototyp erstellen und ihn für die Erstellung eines anderen Menüs verwenden. Wenn wir die Umwelt nutzen würden...

Hier brechen Metaquotes manchmal in einigen Codefragmenten ab.

Hier ist es wünschenswert, eine zusätzliche dynamische Schnittstelle hinzuzufügen, die erscheint, wenn Sie auf.... klicken/hovern. Und das ist nur ein sehr kleiner Teil davon.

 
Реter Konow:
Es geht nicht nur um das Eingabefeld. Sie möchten z. B. den aktuellen Wert des Kontrollkästchens abfragen - prüfen Sie, ob das Kontrollkästchen aktiviert ist oder nicht.
Oder finden Sie heraus, welches Element in der Pop-up-Liste ausgewählt ist.
Oder finden Sie heraus, auf welcher Markierung der Schieberegler steht.
Oder, welchen Wert der Fortschrittsbalken hat.
Und so weiter.
Durch den Aufruf von Elementfunktionen können Sie nicht nur deren Wert jederzeit abrufen, sondern auch einen neuen Wert setzen.
Oder Farbe, Zustand (gedrückt, niedergedrückt, gesperrt). Der Aufruf einer Einzelelementfunktion ermöglicht jede dieser Aktionen an jeder beliebigen Stelle des Benutzercodes.

Daneben gibt es aber auch den Begriff derCallback-Funktionen, die Ereignisse erzeugen, wenn etwas geändert wird. Zum Beispiel gibt es ein Kontrollkästchen auf dem Formular und wir müssen wissen, wann sich sein Zustand ändert. Option 1: In regelmäßigen Abständen Abfragen an die grafische Benutzeroberfläche stellen, um den Wert des Feldes zu ermitteln, und wenn sich der Wert ändert, hat sich das Feld geändert. In diesem Fall werden einige Ressourcen für ständige periodische Abfragen verschwendet - das ist nicht kosteneffizient.

Um die Verschwendung von Ressourcen zu vermeiden, haben wir sogenannte Huckepack-Funktionen erfunden, die uns benachrichtigen, wenn sich der Wert eines Steuerelements geändert hat. Wenn wir z.B. ein Kontrollkästchen anklicken, ändert sich sein Zustand, und sobald sich der Zustand ändert, wird ein Ereignis mit Typ, Name und Wert des Steuerelements erzeugt. Und in der Subskription dieses Ereignisses wird bereits der Code ausgeführt, der benötigt wird, um auf die Änderung des Wertes des Kontrollkästchens zu warten. Dies wird als Ereignismodell bezeichnet.

 
Alexandr Andreev:

all dies ist auch einfach durch einen Funktionsaufruf auf die Tatsache der Einstellung. und dann die Arbeit des Programmierers.


Was die Umgebung betrifft, so würde ich gerne eine Reihe von Standards für den Aufruf (ohne Änderung des Funktionsnamens, da ich nicht weiß, in welchem Stück Code ich diese oder jene Funktion benötige) auf allen Arten von Registerkarten und Fenstern sehen. Sowie die Auswahl des Stils durch Farbwechsel beim Hovern.

D.h., Sie müssen einen Menüprototyp erstellen und diesen verwenden, um einen anderen im Code zu erstellen. Wenn wir die Umwelt nutzen würden...

Hier brechen Metaquotes manchmal in einigen Codefragmenten ab.

Hier ist es wünschenswert, die zusätzliche Schnittstelle zu ändern, die erscheint, wenn Sie auf.... klicken/hovern. Und das ist nur ein kleiner Teil.

GUT. In ein paar Stunden werde ich ein von Alexey vorgeschlagenes einfaches Beispiel veröffentlichen. Es wird viel deutlicher sein als das erste Beispiel.
 
Алексей Барбашин:

Es gibt auch einen Begriff wieCallback-Funktionen, die Ereignisse erzeugen, wenn sich etwas ändert. Zum Beispiel gibt es ein Kontrollkästchen auf dem Formular und wir müssen wissen, wann sich sein Zustand ändert. Option 1: In regelmäßigen Abständen Abfragen an die grafische Benutzeroberfläche stellen, um den Wert des Feldes zu ermitteln, und wenn sich der Wert ändert, hat sich das Feld geändert. In diesem Fall werden einige Ressourcen für ständige periodische Abfragen verschwendet - das ist nicht kosteneffizient.

Um die Verschwendung von Ressourcen zu vermeiden, haben wir sogenannte Huckepack-Funktionen erfunden, die uns benachrichtigen, wenn sich der Wert eines Steuerelements geändert hat. Wenn wir z.B. ein Kontrollkästchen anklicken, ändert sich sein Zustand, und sobald sich der Zustand ändert, wird ein Ereignis mit Typ, Name und Wert des Steuerelements erzeugt. Und in der Subskription dieses Ereignisses wird bereits der Code ausgeführt, der benötigt wird, um auf die Änderung des Wertes des Kontrollkästchens zu warten. Dies wird als Ereignismodell bezeichnet.

Nun, Alexey, du sprichst von einer externen GUI, die vom EA über einen Timer aus dem alten Speicher abgefragt wird. Damals brauchte man noch Rückrufe. Jetzt läuft alles innerhalb eines einzigen EA ab, und anstelle der externen Benutzeroberfläche gibt es eine interne. Seine eigene.

Aus diesem Grund ist der Motor mit einer Datei verbunden. Um die Schnittstelle nativ für Expert Advisors zu machen.

Übrigens ist es gut, dass der Motor auf Russisch geschrieben ist. Können Sie sich vorstellen, wie viele Übereinstimmungen von Variablennamen zwischen ihm und dem Expert Advisor auftreten können, wenn Sie eine Verbindung herstellen ...
 
Реter Konow:
Nun, Alexey, du sprichst von einer externen GUI, die vom EA über einen Timer aus dem alten Speicher abgefragt wird. Damals brauchte man Rückrufe. Jetzt geschieht alles in einem einzigen EA, und anstelle einer externen Benutzeroberfläche gibt es eine interne. Seine eigene.

Peter, eigentlich sind Colbecs keine "alte Erinnerung", sondern eine gängige Praxis für jede Interaktion, die nicht notwendigerweise mit der GUI zu tun hat, unabhängig davon, ob es sich um eine externe oder interne Interaktion handelt. Und es spielt keine Rolle, WO es passiert, die Hauptsache ist, WIE es passiert. Colbeck ist kein Zeitnehmer!

Ich warte auf das Video...

 
Алексей Барбашин:

Peter, eigentlich sind Colbikes keine "alte Erinnerung", sondern eine gängige Arbeitspraxis jeglicher Interaktion, die nichts mit der GUI zu tun haben muss, egal ob extern oder intern, und es spielt auch keine Rolle, WO sie stattfindet, die Hauptsache ist, WIE sie stattfindet.

Ich warte auf das Video...

Ich stimme zu. Nur in einer EA werden wir sie nicht brauchen.
 
Реter Konow:
Nun, Alexey, du sprichst von einer externen GUI, die von EA per Timer abgefragt wird, soweit ich mich erinnere. Zu dieser Zeit brauchten wir Rückrufe. Jetzt geschieht alles innerhalb eines Expert Advisors, und anstelle der externen GUI gibt es eine interne. Seine eigene.

Aus diesem Grund ist der Motor mit einer Datei verbunden. Um die Schnittstelle in den Expert Advisor einzubinden.

Es ist einfacher, sich die eigenen Variablen zu merken, als die Variablen eines anderen zu lernen.

Der Code sollte im Allgemeinen ein Minimum an globalen Variablen enthalten, die alle durch die Übergabe von Speicherabschnitten und die gleichzeitige Verarbeitung mehrerer Werte implementiert werden. Es ist sinnvoll, dass ..... .... .... HH hat versucht, Wörter, die sich direkt auf Objekte beziehen, zu streichen.

Im Allgemeinen ist es einfacher, reguläre Colobacks zu verwenden.

 
Alexandr Andreev:

Nun, es ist einfacher, sich seine eigenen Variablen zu merken, als die eines anderen zu lernen.

Im Allgemeinen sollte der Code ein Minimum an globalen Variablen enthalten, die alle durch die Übergabe von Speicherabschnitten und die gleichzeitige Verarbeitung mehrerer Werte implementiert werden. Es ist sinnvoll, dass ..... .... .... HH hat versucht, Wörter, die sich direkt auf Gegenstände beziehen, herauszuschneiden.

In der Regel ist es einfacher, normale Backen zu verwenden.

PS: Sie haben noch viel Gestaltungsarbeit vor sich

 
Реter Konow:
Ich stimme zu. Nur in einer EA werden wir sie nicht brauchen.

Hmmm... dann eine einfache Frage: Wie kann ich wissen, ob sich der Status des Kontrollkästchens geändert hat?