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.
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).
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?
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.
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.
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
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.
Das ist keine leichte Aufgabe. )
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.
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.