Diskussion zum Artikel "Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Schaltflächen"
Ein guter Artikel für Anfänger. Bei komplexeren Schnittstellen ist dieser Ansatz jedoch nicht mehr akzeptabel. Das erste, was ins Auge fällt:
for(int i=0; i<BUTTON_COLUMNS; i++) { for(int j=0; j<BUTTON_ROWS; j++) { ... ... ...D.h. es wird eine starre Tabellenstruktur in den Algorithmus eingenäht und diese Konstruktion findet sich in fast allen Funktionen. Stellen wir uns nun vor, dass das Teilfenster mehrere grafische Elemente enthält, die in keiner Weise mit der Tabelle zusammenhängen. Für sie müssen wir ein eigenes Positionierungsmodell beschreiben, und das ist nicht gut. Das Positionierungsmodell sollte einheitlich und universell sein, d.h. in diesem Fall sollte das Layout "Tabelle" ein Spezialfall dieses Modells sein.
Ein guter Artikel für Anfänger. Bei komplexeren Schnittstellen ist dieser Ansatz jedoch nicht mehr akzeptabel. Das erste, was ins Auge fällt:
D.h. es wird eine starre Tabellenstruktur in den Algorithmus eingenäht und diese Konstruktion findet sich in fast allen Funktionen. Stellen wir uns nun vor, dass das Teilfenster mehrere grafische Elemente enthält, die in keiner Weise mit der Tabelle zusammenhängen. Für sie müssen wir ein eigenes Positionierungsmodell beschreiben, und das ist nicht gut. Das Positionierungsmodell sollte einheitlich und universell sein, d.h. in diesem Fall sollte das Layout "Tabelle" ein Spezialfall dieses Modells sein.Ja, Sie haben Recht. Ich werde versuchen, mir beim nächsten Mal etwas Originelleres einfallen zu lassen. )
In diesem Fall genügt es, ein eindimensionales Array und eine Schleife zu verwenden, um von dem Sonderfall wegzukommen.
Ich verstehe nicht, warum Sie OBJ_EDIT verwenden sollten.
Es wäre viel sinnvoller gewesen, die Standardschaltflächen aus der Bibliothek "wiederzubeleben" (so dass sie auch unter der Maus leuchten).
D.h. es scheint ein nützlicher Artikel zu sein, aber ich verstehe nicht, warum so ein Weg gewählt wurde.
ps: Ich beneide den Autor um seine Ergiebigkeit ;)
...
Ich bin es bereits gewohnt, OBJ_EDIT zu verwenden, da es bei der Visualisierung im Tester angezeigt wird.
In diesem Fall könnten Sie jedes beliebige Objekt für das Beispiel verwenden. Es ist ja schließlich ein kreativer Prozess. )
- www.mql5.com
Ich verstehe nicht, warum Sie OBJ_EDIT verwenden sollten.
Es wäre viel nützlicher, die Standardschaltflächen aus der Bibliothek "wiederzubeleben" (so dass sie auch unter der Maus leuchten).
D.h. es scheint ein nützlicher Artikel zu sein, aber ich verstehe nicht, warum ein solcher Weg gewählt wurde.
ps: Ich beneide den Autor um seine Ergiebigkeit ;)
Es wäre viel nützlicher, Standardschaltflächen aus der Bibliothek zu "animieren" (so dass sie auch unter der Maus leuchten würden).
- www.mql5.com
Und Knöpfe sind in Wirklichkeit gar keine Knöpfe).
Und ich frage mich, ob es einen professionellen Entwickler gibt, der die Standardbibliothek für grafische Elemente in seinen Produkten verwendet?
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Neuer Artikel Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Schaltflächen :
In diesem Beitrag wird ein Beispiel für die Programmierung einer eigenen Benutzeroberfläche mit Steuerelementen der Art Schaltfläche betrachtet. Als Hinweis für den Anwender darauf, dass das besagte Steuerelement ansprechbar ist, richten wir es so ein, dass die Schaltfläche ihre Farbe ändert, wenn der Mauszeiger darüber fährt. Beim Darüberfahren des Mauszeigers wird die Farbe der Schaltfläche etwas dunkler, und beim Betätigen der Maustaster augenfällig noch dunkler. Außerdem erhält jede Schaltfläche weitere automatisch aufklappende Kurzinformationen. Auf diese Weise erhalten wir eine selbsterklärende Benutzeroberfläche.
Ebenfalls betrachtet werden in diesem Beitrag folgende Ereignisse: die Änderung der Position des Mauszeigers, der Zustand der linken Maustaste, der Linksklick auf ein Objekt sowie bei einer Änderung der Diagrammeigenschaften auftretende Ereignisse. Wir legen ein Schaltflächenfeld an, das die gesamte Fläche des Indikatorunterfensters einnimmt. Als Beispiel erstellen wir drei Zeilen mit jeweils vier Schaltflächen.
Der Indikator TestButtons.mq5 kann im Anhang zu diesem Beitrag heruntergeladen werden. Aus diesem Beispiel lässt sich ein recht interessantes Hauptmenü erstellen, wenn man den Gedanken weiterspinnt. Beispielsweise könnte der Anwender durch das Betätigen einer bestimmten Schaltfläche zu den für ihn interessanten Informationen gelangen. Die Anzahl der Schaltflächen kann beliebig erweitert werden.
Autor: Anatoli Kazharski