![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
GUT.
der CFrame ist klar.
---
Mir ist aufgefallen, dass Sie den Weg eingeschlagen haben, bei dem die Blöcke der Benutzeroberfläche jeweils durch eine eigene Bitmap dargestellt werden.ein wichtiger Punkt für diejenigen, die dies lesen und sich bereits Gedanken darüber gemacht haben:
sollte nur mit einer Bitmap arbeiten, auf der alle Elemente der Benutzeroberfläche gerendert werden. Einschließlich der z-Reihenfolge.
In diesem Fall gibt es mehr Möglichkeiten für das Rendering. (Schatten, Farbverläufe usw.)
Und die Steuerung wird vereinfacht (wir werden nicht auf die Ebene der MT-Objekte gehen)
In diesem Fall kann der Schatten eines Fensters als Alphakanal-Bitmap implementiert werden, so dass die Berechnung dieses Schattens nicht mehr erforderlich ist.
Alle GUI-Elemente eines einzelnen Fensters werden auf seiner Bitmap gezeichnet, unter Berücksichtigung der Z-Reihenfolge und der Verschachtelung (ich weiß nicht, wie man die Verschachtelung von GUI-Objekten korrekt aufruft)
Überwachen Sie Mausereignisse durch CHARTEVENT_MOUSE_MOVE, ich habe es in meinen Projekten getan, keine Verzögerungen gefunden.
Die Verwendung anderer Ereignisse ohne Qualitätsverlust bei der Mauseingabe war nicht möglich.
Jetzt muss ich nur noch die Ereignisse implementieren, die die GUI-Engine gemäß der Beschreibung in der Textdatei aufrufen soll.
IMHO sollte jedes einzelne Anwendungsfenster (Dialog) seine eigene Bitmap und sein eigenes Objekt auf dem Chart haben (denken Sie nicht einmal an den Fall, dass mehrere EAs oder Indikatoren eine Bitmap-Ressource "missbrauchen").
In diesem Fall kann der Schatten eines Fensters als Alphakanal-Bitmap implementiert werden, so dass die Berechnung dieses Schattens nicht mehr erforderlich ist.
Alle GUI-Elemente eines einzelnen Fensters werden unter Berücksichtigung der Z-Reihenfolge und der Verschachtelung auf der Bitmap gezeichnet (ich weiß nicht, wie man die Verschachtelung von GUI-Objekten nennt)
das ist richtig.
Ich würde hinzufügen, dass nicht nur "jeder Dialog", sondern speziell eine Bitmap pro Experte/Indikator. Mehr ist möglich, aber das liegt im Ermessen des Programmierers.
Ich denke, wenn Sie einen funktionierenden Dialog auf der Bitmap haben, dann ist das Hinzufügen von modalen Fenstern auf derselben Bitmap oder eines anderen Dialogs auf derselben Bitmap eine technische Angelegenheit und im Moment nicht wichtig.
Zunächst erstellen wir ein abstraktes Modell ohne konkrete Angaben, z. B. welche Fenster sich wo befinden, usw..
Dann können Sie alle verschiedenen Funktionen und Verhaltensweisen abdecken
Grüße Codierer.
Es gibt eine interessante Aufgabe, etwas wirklich Nützliches zu tun, und ich denke, Crowdsourcing wäre eine gute Option.
Erstens werden die Ergebnisse bereits in der Anfangsphase für jedermann zugänglich sein. Zweitens werden wir mit MQL etwas Neues machen. Und vielleicht werden wir sogar die MT-Entwickler um neue Goodies bitten.
----
Hier ist also die erste und grundlegende Aufgabe.
1. Wir müssen eine Klasse von Schaltflächen erstellen (sagen wir GButton, mit dem Präfix G, um sie nicht mit den bereits vorhandenen zu verwechseln).
- Bisher ist die Schaltfläche einfach mit Text (keine zusätzlichen Bilder)
- die Schaltfläche wird auf einem bestimmten Bereich der Leinwand gezeichnet
- die Schaltfläche hat ein Klick-Ereignis.
---
Mit der Zeit werden wir die Codes im Bitbucket veröffentlichen.
Ideal ist es, wenn eine grafische Benutzeroberfläche in einer separaten Anwendung entworfen und beispielsweise als XML importiert wird. Es ist keine gute Idee, die Position von Schaltflächen und Dialogformularen in einem EA zu beschreiben.
Layout:
Durchführung von Veranstaltungen:
Im Allgemeinen wäre es ideal, eine grafische Benutzeroberfläche zu haben, die in einer separaten Anwendung entworfen und zum Beispiel als XML importiert wird. Es ist keine gute Idee, das Layout von Schaltflächen und Dialogformularen im Expert Advisor zu schreiben.
dort )
kommen wir zu unserer ersten Aufgabe, die wir nach der Erstellung der Elemente durchführen werden.
Im Allgemeinen wäre es ideal, eine grafische Benutzeroberfläche zu haben, die in einer separaten Anwendung entworfen und zum Beispiel als XML importiert wird. Es ist keine gute Idee, Schaltflächenlayouts und Dialogformulare in einem EA zu schreiben.
In diesem Fall sollten Sie damit beginnen, einen schnellen und guten XML-Parser zu schreiben. Es ist sehr praktisch, so etwas im Haus zu haben. Ich verwende selbst eine Version von CodeBase, aber sie ist bei bestimmten Aufgaben sehr langsam, insbesondere bei neuen Builds. Ich habe schon alle diese Pflaster und Krücken drin. Generell gilt: Schreibt einen guten Parser, Genossen! Machen Sie es für alle einfach.
Vielleicht wissen Sie, wie man einen funktionierenden und vollständig gezeichneten Slider erstellt? Zumindest in allgemeiner Hinsicht... Ich würde gerne das allgemeine Konzept kennenlernen.
Vielleicht wissen Sie, wie man einen voll funktionsfähigen und vollständig gezeichneten Schieberegler erstellt? Zumindest in allgemeiner Hinsicht... Ich würde gerne das allgemeine Konzept kennenlernen.
Schauen Sie sich die CCanvas-Klasse an. Alle Rendering-Primitive sind verfügbar.
Zweitens können Sie bmp für Ihre emfs laden und sie a la BitBlt auf die Leinwand mischen.