Ein Crowdsourced-Projekt auf Canvas durchführen - Seite 5

 
Реter Konow:

In meiner Implementierung werden die Punkte A und B durch die Position von zwei Objekten dargestellt - die X-Koordinate der Schieberegler-Spur (ihr Start) und die X-Koordinate des Schiebers.

das gleiche in der gezeichneten Version.

Sie denken eng, argumentieren über einige ObjectGet/Set
mindestens drei Modelle verschmelzen in der Steuerung - Grafiken, Ereignisse, Daten.
es spielt keine Rolle, wo oder wie es gezeichnet wird. es kann in Textform wie [.......|...] sein. es kann auch auf der Leinwand erscheinen, oder zwei MT Rechteck-Objekte können angezeigt werden.

Das Modell der Ereignisse oder Daten leidet nicht darunter.

 
o_O:

in der gezeichneten Version ist es dasselbe.

Sie denken sehr eng und sprechen von einem ObjectGet/Set
Das Steuerelement vereint mindestens drei Modelle - Grafiken, Ereignisse, Daten.
Es spielt keine Rolle, wo und wie es gezeichnet wird. Es kann in Textform wie [.......|...] sein. Es kann auch auf einer Leinwand erscheinen, oder Sie können zwei MT-Rechteckobjekte haben.

Das Modell der Ereignisse oder Daten leidet nicht darunter.


Dennoch ist mir der Mechanismus nicht klar. Wenn Sie genauer erklären können, für eine allgemeine Idee, wird es mir sehr helfen, zu verstehen. danke.
 

Es stellt sich eine grundlegende Frage.

Nehmen wir an, es gibt zwei Anwendungen, Panels, Indikatoren, in einem Diagramm. Soll jeder von ihnen auf eine eigene Leinwand malen oder beide auf eine gemeinsame?

In beiden Fällen gibt es Fragen.

 
o_O:

nicht nur weniger, sondern gar keine (außer bitmap_label, wo alles gezeichnet wird).

Ich bin nur neugierig, wie Sie die Textverarbeitung (Textlabel, Texteingabefeld ) implementieren. Eine kurze Liste von Problemen, die Sie lösen müssen:

  • Arbeiten mit nationalen Alphabeten (bei den Schriftarten hat z. B. die Times New Roman einen Umriss für fast alle Alphabete vom Englischen bis zum großen mächtigen und etwas Hindi).
  • Textskalierung: 6-8-10-12...72 Punkte - die gleiche Schriftgröße kann problemlos eingestellt werden. Die Vectoral-Schrift ist sozusagen das, wofür sie geschaffen wurde.
  • Kursiv, fett, unterstrichen - was werden Sie für jeden dieser Schrifttypen oder Umrissalgorithmen erstellen?
  • Tippen/Bearbeiten, Cursorsteuerung - all das in Form einer Zeichnung zu machen, ist eine höllische Aufgabe. Um ehrlich zu sein, kann ich mir nicht einmal ansatzweise vorstellen, wie Sie es umsetzen werden.

Und das alles vor dem Hintergrund der bereits funktionierenden Steuerelemente "Textlabel" und "Textlabel mit Textbearbeitung". Die einzigen Probleme sind die Beschränkung auf 32 Zeichen und die fehlende Möglichkeit, integrierte Schriftarten zu verwenden.

Sie werden viel Zeit brauchen, um all diese Probleme zu lösen, aber Sie werden bestenfalls 30 % davon lösen. Hunderte von Kilobytes Ihres Codes werden bestenfalls ein wenig aus Standardelementen bestehen, aber sie werden ihre eigenen Krankheiten, Pannen und verschiedene unangenehme Einschränkungen haben. Brauchen Sie das wirklich?

 
Vasiliy Sokolov:
Документация по MQL5: Графические объекты / TextOut
Документация по MQL5: Графические объекты / TextOut
  • www.mql5.com
Графические объекты / TextOut - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
o_O:

nicht nur weniger, sondern gar keine (außer bitmap_label, wo alles gezeichnet wird).

Vergessen Sie auch nicht das Ereignismodell. Es ist nicht dafür ausgelegt, Ereignisse auf der Leinwand zu verarbeiten. Alles, was Sie haben, sind Tastatureingaben in einem bestimmten Bereich des Bildschirms + Mauskoordinaten. Ja, man kann mit OOP aus dieser Dunkelheit herauskommen, aber der Weg dorthin wird hart und sehr lang sein.

 
Реter Konow:

Ich verstehe den Mechanismus immer noch nicht. Wenn Sie mir das genauer erklären könnten, würde mir das sehr helfen, es zu verstehen.
Starten Sie das Kanvas-Beispiel aus dem xo. zip-Archiv https://www.mql5.com/ru/forum/92113#comment_2672543
 
Vasiliy Sokolov:

Ich frage mich nur, wie Sie die Textarbeit umsetzen

wie bereits gezeigt - lassen Sie uns TextOut verwenden

Sie werden viel Zeit verlieren, um all diese Probleme zu lösen

Wir werden uns nicht den Kopf über unüberwindbare Hindernisse zerbrechen. Wenn der MC keine Lösung für diese Probleme bietet, wird die ganze Sache eingestellt.

Ich warte immer noch auf eine Rückmeldung von SR.

Vergessen Sie auch nicht das Ereignismodell. Sie ist nicht für die Verarbeitung von Ereignissen auf der Leinwand konzipiert.

Erinnern Sie sich, dass ich Ihnen das Analogon Ihres Panels für den Handel mit Netting-Orders gezeigt habe? Nun, CHARTEVENY_MOUSE_MOVE wird dort nicht verwendet, alles wird von selbst analysiert.

Glauben Sie mir, es gibt kein Problem mit der Anzeige von Ereignissen oder Eingabewagen.

Die Frage bezieht sich jetzt nur noch auf Tastaturereignisse.

 
o_O:

Jetzt geht es nur noch um Tastaturereignisse.

Mit der Tastatur ist alles mehr oder weniger klar. Es gibt das Ereignis des Tastendrucks und es gibt den Code für diese Taste. Was wollen Sie mehr?
 
o_O:

Wir werden den SR um eine Verfeinerung bitten.

Übrigens, wenn Sie mich fragen, würde die Einführung des OnMouseDown-Ereignisses das Leben in Bezug auf ein normales DND erheblich erleichtern.