Galerie der in MQL geschriebenen UIs - Seite 78

 
Doerk Hilger #: Du meinst die Lichteffekte? Naja, zusätzliches Licht :D Wie gesagt, CCanvas ist auch nur in den Grundlagen und der Struktur angepasst, aber nicht in den Details.
Ich verstehe, danke. )
 
Реter Konow #:
Ich verstehe, danke. )

Fühlen Sie sich frei, es zu benutzen :)
PS: updown ist eigentlich nutzlos, wie ich sehe. Wie auch immer, das Licht kommt sowieso meist von oben

 
Doerk Hilger #:

Fühlen Sie sich frei, es zu benutzen :)
PS: updown ist eigentlich nutzlos, soweit ich sehen kann. Auf jeden Fall kommt das Licht normalerweise von oben.

Ja, das ist eine interessante Option, ich werde sie ausprobieren :)

Bei mir funktioniert die Lichtverteilung andersherum - von einer bestimmten Quellfarbe zu einer helleren. Lassen Sie mich das erklären: Der Algorithmus für die Farbaufteilung selbst funktioniert korrekt und schreibt 256 Farbtöne in das Array. Das ist der gesamte Bereich für jede Farbe, den die Funktion akzeptiert. Aber der Malalgorithmus legt den Farbverlauf auf den Oberflächen der Elemente nur in einer Richtung an. Ich wollte schon lange weitere Funktionen hinzufügen und einen multidirektionalen Farbverlauf erstellen, der Volumen und komplexe flächige Elemente erzeugen würde. Im Prinzip ist dies keine schwierige Aufgabe. Allerdings gibt es viele weitere wichtige Aufgaben vor).

 
Freund, wenn Sie herausfinden können, wie Sie die GUI beim Backtesting Ihres EA verwenden können, wäre ich Ihnen sehr dankbar.
 
Реter Konow #:
Das ist keine leichte Aufgabe. )

Soweit ich weiß, gibt es in der Standard-Ccanvas-Klasse keine Funktionalität, um einen Farbverlauf zu zeichnen. Wie haben Sie das Problem mit einem Farbverlauf in Ihrer GUI gelöst?
Es ist alles durch Formeln im Code gelöst
Dateien:
 
Yu Zhang Backtesting Ihres EA verwenden können, wäre ich Ihnen sehr dankbar.

Nichts leichter als das.

Der beschriebene Kern verwaltet ALLE Ereignisse, egal ob es sich um einen Tick oder ein Chart-Ereignis handelt. Sie können einfach die Mausposition etc. auch in einem Tick abfragen, auf Änderungen prüfen und dann das OnEACylce() für das Chart-Event auslösen. Sie sind nicht mehr auf irgendetwas beschränkt.

 
Morgen werde ich ein detailliertes Update über den Entwicklungsstand veröffentlichen.

Heute kann ich sagen, dass zwei der 6 Editor-Fundamente gelegt worden sind.
 

Aktueller Stand der Entwicklung:

1. Es wurde viel Arbeit geleistet, um Hunderte von Eigenschaften von Objekten, Elementen, Fenstern und Parametern in Tabs und Tabellen im Editor zu integrieren. Es war notwendig, sie zu trennen und zu sortieren. Ungefähr 70% dieser Aufgabe ist abgeschlossen. Nicht alle dieser Eigenschaften werden von den Benutzern bei ihrer Arbeit benötigt, aber ich brauche sie für die weitere Entwicklung des Editors.

2- Der Scroll-Mechanismus wurde überarbeitet. Jetzt "merkt" sich jede Registerkarte die Position des Schiebereglers und wenn Sie zurückkehren, wird die Leinwand automatisch an die letzte Stelle der Ansicht gescrollt.

3) Verzögerungen beim Scrollen wurden behoben. Zum Beispiel reagieren interaktive Elemente beim Scrollen mit dem Mausrad nicht mit der angegebenen Geschwindigkeitsschwelle auf den Cursor. Wenn die Ankunftsrate der Mausrad-Ereignisse mehr als 3 pro Sekunde beträgt (300 ms zwischen den Ereignissen), werden Elemente,die unter den Cursor fallen , nicht neu gezeichnet. Außerdem werden jetzt nur der Streifenbereich und seine Komponenten während des Scrollens gezeichnet. Der Rest des Canvas-Bereichs wird nicht ignoriert.

4. Die Arbeit der T_FOLDER-Elemente - Table Collapsers - wurde angepasst. Dies ist auf dem Video deutlich zu sehen.

5. Es wurden Probleme mit dem Phänomen der Elemente gefunden und behoben.

6. Das Design des Subfensters des Editors ist besser durchdacht. Es wurden bequeme und ästhetische Lösungen gefunden. Es gibt jedoch noch viel Arbeit in dieser Richtung zu tun.


Die nächsten Pläne:

1. Schreiben der Funktionen Get_property() und Set_property(). Sie werden es ermöglichen, aus Vorlagen kopierte Instanzen zu bearbeiten. Die erste Funktion wird alle Eigenschaften (mehr als 300) von jedem Element auf einmal abrufen und sie in die Bearbeitungselemente in den Editor-Tabs (die im Video) setzen. Die zweite Funktion sendet benutzerdefinierte Werte aus dem Editor-Element an die bearbeitbare Instanz-Eigenschaft auf der Haupt-Leinwand (in der Mitte).

2. Stellen Sie die manuelle Elementbearbeitungsfunktion wieder her, die vor 4 Jahren gut funktioniert hat.


 
Heute ist der 21. Dezember. Ich hatte erwartet, dass die Minimalversion des Editors in den ersten zehn Dezembertagen, also vor dem 20. Dezember, fertig sein würde, und im Prinzip wäre es auch so gewesen, wenn ich die vorherige Minimalversion, die vorher funktionierte, wiederhergestellt hätte, aber ich habe mich entschlossen, eine Vollversion des Editors zu erstellen. Deshalb gab es viel mehr Arbeit als erwartet.

Vorhin habe ich über die 6 Grundlagen eines visuellen Editors gesprochen. Ich möchte sie in Erinnerung rufen:

1. Klonen von Elementen/Fenstern.

Erstellen neuer Instanzen von Elementen durch Kopieren von Vorlagen und Ändern ihrer Eigenschaften.

2. Löschen von Elementen/Fenstern.

Löschen von zuvor geklonten Instanzen aus dem Kern.


3. Abrufen von Eigenschaften von Fenstern/Elementen.

Eigenschaftseditor-Elemente sollten Eigenschaftswerte von Instanzen abrufen, die in den Bearbeitungsfokus fallen.

4. Bearbeiten von Eigenschaften von Elementen/Fenstern.

Es gibt insgesamt 2 Möglichkeiten, Eigenschaften zu bearbeiten: (1) über Element-Editoren und (2) manuelle Bearbeitung von Instanzen. Zum Beispiel Kräuseln, Verschieben, Drucken auf x-Fläche, etc.


5. Laden von Vorlagen/Projekten.

Funktionalität, die es erlaubt, gespeicherte Vorlagen und Projekte zur weiteren Bearbeitung in den Editor zu laden.

6. Speichern von Vorlagen/Projekten.

Funktionalität, die es ermöglicht, fertige GUI-Vorlagen und Projekte in Dateien zu speichern, um sie später in benutzerdefinierte Programme zu übertragen oder als Betaversion zu verwenden und zum Bearbeiten oder Kopieren von Teilen erneut zu laden.

Im Allgemeinen sind dies die sechs Grundlagen eines visuellen Editors.

Als siebte Grundlage würde ich eine grafische Editoroberfläche hinzufügen, ohne die er nicht funktionieren kann.


Bis zum neuen Jahr möchte ich Klonen, Löschen und visuelle Bearbeitung sowohl mit Element-Editoren als auch im manuellen Modus implementieren. Wir werden sehen, was ich in der Zeit erreichen kann.


 
6 Grundlagen (kurz und klar)

1. Kopieren von Elementen.

2. Löschen von Elementen.

3. Manuelle Bearbeitung (Verschieben, Dehnen, Drucken).

4. Bearbeitung über Steuerungen (Eigenschaften in Element-Editoren holen und ändern).

5. Laden von GUI-Vorlagen und Projekten aus Dateien.

6. Speichern von Vorlagen und GUI-Projekten in Dateien.