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
Um es mit den Worten zu sagen: Sie werden am Ende einen EA mit einer Schnittstelle haben, auch wenn ein Teil von mir und der andere Teil von Ihnen gemacht wird. Dies hindert Sie nicht daran, die beiden Teile zu einem EA zusammenzufügen.
Wie auch immer, das werden wir tun. Ich veröffentliche den Builder und bringe ihm bei, wie man mit der GUI gestaltet. Es gibt noch keine Dokumentation, wenn Sie also Interesse haben, halten Sie Ausschau nach dem Tutorial.
Verstanden!
Ich habe das Video nicht aufgenommen, aber ich sende Ihnen ein Beispiel.
Es gibt 600 Dropdown-Listen.
Bewegen Sie die Maus - bei jedem Ereignis und Farbwechsel wird die gesamte CCanvas neu gezeichnet.
Sie können die endgültige Größe in den Bitmap-Eigenschaften sehen - 1500x600 px (im Vergleich zu Ihren 800x500 und 250ms Verzögerung). Das entspricht 900.000 Pixeln, die alle sofort neu gezeichnet werden, so dass keine Sekunde vergeht.
Jede Liste wird zunächst auf einer eigenen Leinwand in ihrer eigenen Größe gerendert (damit sie nicht überläuft) und dann in das Gesamtbild eingepflügt. Wir haben also 600 ResourceCreate-Aufrufe pro Mausereignis.
Das bedeutet, wie Sie an der Reaktionsgeschwindigkeit sehen können, dass die Bilder ausreichen, um Zeichentrickfilme zu zeigen.
MT-Entwickler gaben zufriedenstellendes Werkzeug ohne Lags (ich meine ResourceCreate Bitmaps)
Ist es möglich, dieses Beispiel in Open Source zu sehen?
Es ist bedauerlich, dass das Projekt nicht weitergeführt wird (
Sie hat sich nicht verändert.
Ist es möglich, dieses Beispiel in Open Source zu sehen?
Was verstehen Sie nicht an Kanvas?
1. es reagiert auf Ereignisse wie alle anderen grafischen Objekte. Das heißt, Sie können die Mauskoordinaten verfolgen, während sie sich bewegt, und auf Maus- undTastaturklickereignisse reagieren.
2. Es kann die Farbe jedes Pixels unabhängig voneinander ändern.
Was brauchen Sie noch? Und dann braucht man etwas Grips und die Bereitschaft, viel Zeit sinnlos zu verschwenden.
Was verstehen Sie nicht an der Arbeit mit einem Kanvas?
1. Es reagiert auf Ereignisse wie alle anderen grafischen Objekte. Das heißt, Sie können die Mauskoordinaten verfolgen, während sie sich bewegt, und auf Maus- undTastaturklickereignisse reagieren.
2. Es kann die Farbe jedes Pixels unabhängig voneinander ändern.
Was brauchen Sie noch? Das nächste, was Sie brauchen, ist etwas Grips und die Lust, viel Zeit zu verschwenden.
Nun, Kanvas selbst reagiert nicht auf Ereignisse. Und die Tatsache, dass man jedes Pixel ändern kann, ist selbstverständlich.
Ich interessierte mich für die Umsetzung einer fragmentierten Neuzeichnung der Leinwand.
Aber es scheint, dass sich viele für eine vollständige Neuzeichnung der Leinwand entschieden haben, auch wenn nur ein kleiner Teil, d. h. ein einzelnes Steuerelement, neu gezeichnet werden muss.
Nun, der Kanvas selbst reagiert nicht auf Ereignisse. Und die Tatsache, dass man jedes Pixel ändern kann, ist klar.
Ich interessierte mich für die Implementierung des stückweisen Neuzeichnens der Leinwand.
Aber es scheint, dass viele sich für eine vollständige Neuzeichnung der Leinwand entschieden haben, auch wenn nur ein kleiner Teil, z. B. ein Bedienelement, neu gezeichnet werden muss.
Die Leinwand selbst reagiert nicht auf Ereignisse, aber sie existiert auch nicht von selbst.
Fragmentarische Umgestaltung - es lohnt sich, damit anzufangen, und wird klarer werden, wenn es ein solches Ziel gibt. Ich denke, es sollte ein Array von Steuerelementen geben, wobei jedes Steuerelement definierte Grenzen hat. Wenn Sie ein Steuerelement neu zeichnen müssen, müssen Sie alle Steuerelemente durchgehen und sehen, was noch in diesen Bereich fällt, und nur diese neu zeichnen. Zumindest auf diese Weise.
Der Kanvas selbst ist nicht reaktiv, aber er existiert auch nicht von selbst.
Fragmentierte Umgestaltung - es lohnt sich, damit zu beginnen, und es wird klarer werden, wenn es ein solches Ziel gibt. Ich denke, es sollte ein Array von Steuerelementen geben, wobei jedes Steuerelement definierte Grenzen hat. Wenn Sie ein Steuerelement neu zeichnen müssen, müssen Sie alle Steuerelemente durchgehen und sehen, was noch in diesen Bereich fällt, und nur diese neu zeichnen. Zumindest auf diese Weise.
Genau so habe ich es gebaut. Grundsätzlich habe ich die Standardbibliothek als Grundlage genommen, weil sie sehr gut ausgearbeitete Momente der Übertragung von Ereignissen und einige andere Dinge hat. Anatoly schafft Gruppierungen für die verschiedenen Klassen von Elementen, während in der Standardversion alles auf ein Grundobjekt reduziert wird.
Daher enthält WndObject die vollständige Beschreibung der gebräuchlichsten Eigenschaften jedes Steuerelements (Größe, Position, Hintergrundfarbe, Rahmenfarbe, Rahmenstärke, Text, Bild usw. usw.). Außerdem enthält die gleiche Klasse einen Verweis auf das übergeordnete Steuerelement. Das heißt, wenn kein übergeordnetes Objekt für das Steuerelement angegeben ist, erstellt es sein eigenes Kanvas-Objekt auf der Grafik, andernfalls wird es auf dem Kanvas des übergeordneten Objekts gezeichnet. Je nach Position (eigenständig, untergeordnet) werden auch die Koordinaten der Position des Objekts berechnet. Zusätzlich verfügt dasselbe Objekt über ein Array, das die ursprüngliche Beschreibung des übergeordneten Bereichs enthält, der von dem Element belegt wird. Die Idee ist folgende: Wenn sich nur das Element selbst ändert, wird der Pixelbereich mit der Matrix der übergeordneten Pixel gefüllt, bevor es neu gezeichnet wird, und erst dann wird der neue Zustand des Steuerelements angewandt. Bei diesem Ansatz muss nicht jedes Mal die gesamte Leinwand neu gezeichnet werden, da das Neuzeichnen alle Elemente im Array umgeht und rekursiv mit verschachtelten Elementen erfolgt. Für das Rendern und Aktualisieren eines bestimmten Steuerelements schlagen wir zwei Funktionen vor: eine, die beim Erstellen des gesamten Steuerelements über das übergeordnete Steuerelement (oder auf eine leere Leinwand) zeichnet, und eine weitere, die nur die Anzeige des angegebenen Steuerelements aktualisiert. Es geht also folgendermaßen.
Noch "verloren" im Ereignismodell: nach welchen Änderungen müssen welche Ebenen neu gezeichnet werden.
Nikolai zeigt in seinen Beispielen, dass es im Prinzip nicht nötig ist, die Daten lokaler Bereiche zu speichern, weil das Neuzeichnen der gesamten Leinwand so schnell funktioniert, dass es nicht nötig ist, bis ins Detail zu gehen, sondern es reicht, immer alles auf einmal neu zu malen.