Diskussion zum Artikel "Grafische Interfaces II:Das Menu-Item-Element(Kapitel 1)"

 

Neuer Artikel Grafische Interfaces II:Das Menu-Item-Element(Kapitel 1) :

In dem zweiten Teil dieser Serie, werden wir im Detail auf die Entwicklung von Interface Elementen, wie einen Hauptmenü und Kontextmenüs eingehen. Wir werden auch das Zeichnen und das Entwickeln einer speziellen Klasse für diese Elemente berücksichtigen. Wir werden ausführlich den Fragen der Verwaltung von Events und benutzerdefinierten Events nachgehen.

In dem ersten Kapitel dieser Serie, haben wir den vollständigen Prozess der Entwicklung der Hauptstruktur der Bibliothek für die Erzeugung von grafischen Interfaces besprochen. Hier haben wir auch das Hauptelement der interfaces erzeugt, ein Formular mit Controls. Der erste Artikel: Graphische Interfaces I: Vorbereiten der Bibliotheksstruktur (Kapitel 1) Beschreibt im Detail wofür diese Bibliothek gedacht ist. Eine vollständige Liste mit Links zu diesem Artikel des ersten Teils, finden Sie am Ende von jedem Kapitel. Zudem finden Sie dort eine Möglichkeit das Projekt, entsprechend dem aktuellen Entwicklungszustand, herunterzuladen. Die Dateien müssen in den gleichen Verzeichnissen untergebracht werden, so, wie Sie auch in dem Archiv abgelegt sind.

Das Hauptmenü des Programms

Es gibt kaum ein Programm, welches kein Hauptmenü besitzt. Die MetaTrader Terminals besitzen ebenfalls ein solches Interface-Element (Wie sie im nachfolgenden Screenshot sehen können). Normalerweise befindet sich das Hauptmenü in der linken oberen Ecke eines Programms und besteht aus einigen Punkten. Ein Klick mit der linken Maustaste öffnet ein Dropdown Menü mit weiteren Optionen.

Abbildung  1. Und das Hauptmenü im MetaTrader 5 Terminal

Abbildung 1. Und das Hauptmenü im MetaTrader 5 Terminal

Ein solches Dropdownmenü wird auch als Kontextmenü bezeichnet und kann verschiedene Arten von weiteren Punkten enthalten. Lassen Sie uns diese im Detail anschauen:

  • Einen Button. Dieses gehört zu den einfachsten Elementen in einem Kontextmenü. Normalerweise öffnet ein Klick mit der linken Maustaste ein Fenster mit weiteren Funktionalitäten für die Einstellungen des Programms oder ein Fenster mit weiteren Informationen. Es kann hier auch ganz einfache Funktionen geben. Zum Beispiel kann sich auch einfach nur das Erscheinungsbild des Programms ändern, nachdem einer dieser Button angeklickt wurde.
  • Ein Element mit zwei Zuständen vom Typ Checkbox. Ein solches Element kann dazu verwendet werden, einen Prozess zu aktivieren oder ein Teil des Programms zu öffnen, beziehungsweise sichtbar zu machen. In so einem Fall ändert dieses Element sein Erscheinungsbild und zeigt damit dem Anwender, in welchem Zustand es sich befindet.
  • Eine Gruppe von Elementen. In solch einer Gruppe kann immer nur ein Element aktiviert werden. Ein solcher Typ eines Controls wird auch Radiobutton oder Schalter genannt. In diesem Artikel werden wir es ein Radio-Element (Button) nennen.
  • Ein Element für den Aufruf eines Kontextmenüs. Ein Kontextmenü, welches von dem Hauptprogramm aufgerufen wurde, kann Elemente von einem oder mehreren weiteren Kontextmenüs enthalten. Nachdem ein solches Element angeklickt wurde, erscheint auf der rechten Seite ein Kontextmenü.

Autor: Anatoli Kazharski

[Gelöscht]  
Für Freiberufler und Verkäufer (Market) ist die Schaffung einer grafischen Oberfläche von großer Bedeutung, da sie es ermöglicht, potenzielle Kunden/Käufer anzuziehen.

Für den Rest von uns ist der Nutzen und die Notwendigkeit nicht ganz klar. Fragen Sie also bitte den Autor. Könnten Sie ein Video der ausgefeiltesten (unter Berücksichtigung aller zukünftigen Artikel zu diesem Thema) grafischen Benutzeroberfläche erstellen, in dem alle Funktionen gezeigt werden?

Denn kaum jemand wird solch umfangreiches Material lesen und verstehen, ohne zu verstehen, warum es notwendig ist. Und bei der Video-Demonstration wird jeder selbst entscheiden, ob er es braucht oder nicht. Und selbst wenn er es jetzt nicht braucht, bekommt er eine Vorstellung von den Möglichkeiten, die in Zukunft hervorgehoben werden können. Und wenn sie tatsächlich interessiert sind, werden sie die Artikel sorgfältig lesen und Fragen zu diesem Thema stellen.

Bitte im Namen von NICHT Freiberuflern und Verkäufern.
 
zaskok3:
Für Freiberufler und Verkäufer (Market) ist die Schaffung einer grafischen Oberfläche von großer Bedeutung, da sie es ermöglicht, potenzielle Kunden/Käufer anzuziehen.

Für den Rest von uns ist der Nutzen und die Notwendigkeit nicht ganz klar. Fragen Sie also bitte den Autor. Könnten Sie ein Video der ausgefeiltesten (unter Berücksichtigung aller zukünftigen Artikel zu diesem Thema) grafischen Benutzeroberfläche erstellen, in dem alle Funktionen gezeigt werden?

Denn kaum jemand wird solch umfangreiches Material lesen und verstehen, ohne zu verstehen, warum es notwendig ist. Und bei der Video-Demonstration wird jeder selbst entscheiden, ob er es braucht oder nicht. Und selbst wenn er es jetzt nicht braucht, bekommt er eine Vorstellung von den Möglichkeiten, die in Zukunft hervorgehoben werden können. Und wenn sie wirklich interessiert sind, werden sie die Artikel sorgfältig lesen und Fragen zu diesem Thema stellen.

Bitte im Namen von NICHT Freiberuflern und Verkäufern.

Für diejenigen, die MQL und objektorientiertes Programmieren lernen, halte ich es für interessant zu lesen. Es ist viel einfacher, eine Programmiersprache an solchen Projekten zu lernen, als an irgendwelchen abstrakten Beispielen, die wirklich sehr oft nicht die Frage beantworten: "Und wo kann das angewendet werden?".

Ich zum Beispiel brauchte wirklich eine solche Bibliothek, aber von dem, was der MQL-Gemeinschaft angeboten wurde, fehlten mir viele Dinge für eine komfortable Nutzung.

Ich werde noch kein Video machen, und es gibt noch eine Menge Arbeit, die ohne sie zu erledigen ist. Außerdem hat eine grafische Oberfläche ohne Inhalt, egal wie schick sie ist, keinen Sinn, d.h. sie wird Ihre Frage überhaupt nicht beantworten. Jeder muss eine Idee haben, warum er sie braucht. Und wenn es keine Ideen gibt, dann stellt sich heraus, dass sie nicht notwendig ist.

Nehmen wir an, Sie haben eine Idee für die Entwicklung einer komplexen Handelsstrategie. Nehmen wir an, es handelt sich um mehrere Handelsstrategien. Es ist praktisch, eine grafische Schnittstelle zu erstellen, um sie zu verwalten. Oder es handelt sich um Ihren eigenen Tester, der Ihrer Meinung nach besser ist als der Standardtester. Oder Ihr Programm muss einige Daten aus der Datei-Sandbox des Terminals spezifizieren, aber nicht durch die Eingabe einer Zeichenkette, die den vollständigen Pfad zur Datei enthält, sondern durch einen Datei-Navigator, der mit Hilfe dieser Bibliothek leicht und einfach erstellt werden kann. Vielleicht handelt es sich um eine Art analytisches Programm zur Durchführung von Untersuchungen oder Berechnungen mit sofortiger Visualisierung der Daten in einem Diagramm im Terminal. Erstellen Sie Ihre eigenen Diagramme, die nicht an die Zeitskala des Diagramms gebunden sind, in dem sich das Programm befindet. Um dieses ganze "Orchester" bequem verwalten zu können, wird eine grafische Schnittstelle benötigt. Schließlich kann es vorkommen, dass Sie die Werte einiger Parameter spontan ändern, in einen anderen Modus wechseln, Daten öffnen und visualisieren müssen. Und anstatt sich ständig mit dem Code oder den externen Parametern des Programms zu beschäftigen, was meiner Meinung nach sehr unbequem ist, kann man, wenn die Anwendung sehr komplex ist, einfach eine kompakte grafische Oberfläche erstellen.

[Gelöscht]  
Vielen Dank, aus Ihrer Antwort habe ich erkannt, wo ich es verwenden könnte:
Während des Echtzeithandels möchte ich sehen, wie der Handel im Tester wäre - in Echtzeit. D.h. ich sehe die Kampfumgebung mit normalen Mitteln. Und ich kann die Echtzeitumgebung des Testers mit Ihren Visualisierungswerkzeugen sehen. Gleichzeitig kann ich die Historie in diesem virtuellen Tester und das Handelsdiagramm sehen.

So können Sie schnell die Gründe für Abweichungen zwischen dem Tester und der realen Umgebung analysieren: Requotes, Re-Jacks und andere Nuancen. Ist Ihre Bibliothek in der Lage, eine Schnittstelle wie auf dem Bild in diesem Artikel zu erstellen?

Kann die Bibliothek 2D-Charts zeichnen?
 

zaskok3:

Während des Echtzeithandels möchte ich sehen, wie der Handel im Tester ablaufen würde - in Echtzeit. Das heißt, ich kann die Kampfumgebung mit den Standardwerkzeugen sehen. Und ich sehe die Echtzeitumgebung des Testers mit Ihren Visualisierungswerkzeugen. Gleichzeitig kann ich die Historie in diesem virtuellen Tester und den Chart der Geschäfte sehen.

Ja, aber nur, wenn Sie selbst einen solchen Tester schreiben. Und mit Hilfe dieser Bibliothek können Sie eine grafische Oberfläche dafür erstellen.

zaskok3:

Damit können Sie schnell die Gründe für die Abweichung zwischen dem Tester und der Realität analysieren: Requotes, Re-Jacks und andere Nuancen. Ist Ihre Bibliothek in der Lage, eine Schnittstelle wie auf dem Bild in diesem Artikel zu erstellen?

Ja, das kann sie. Aber wir müssen warten, bis die gesamte Bibliothek veröffentlicht ist. Es werden insgesamt etwa 20 Artikel sein, vielleicht auch mehr. Im Moment sind erst 6 Artikel der Serie veröffentlicht worden.

zaskok3:

Wird die Bibliothek auch 2D-Diagramme erstellen?

Ich habe bereits ein solches Klassenelement und es könnte für Sie ausreichen. Aber es ist nur eine leicht modifizierte Klasse aus der Standardbibliothek. Natürlich reicht sie auch mir nicht aus und ich habe vor, meine eigene Bibliothek zum Zeichnen von Diagrammen zu erstellen. Es sei denn, jemand schreibt sie vor mir. ) Ich hätte gerne etwas Ähnliches, wie es z.B. in Excel implementiert ist.

[Gelöscht]  
Anatoli Kazharski:
Danke für die ausführlichen Antworten! Jetzt habe ich eine Idee, wo es für einen Trader-Entwickler für seine wirklichen Bedürfnisse nützlich sein kann, nicht um des Schnickschnacks willen. Die Artikel sind sehr informativ, aber ich werde es mir im Detail ansehen und ausprobieren, wenn ich die Möglichkeiten habe. 2D-Charts sind besonders gut....
[Gelöscht]  
Anatoli Kazharski:

Bitte fügen Sie Links zu der Liste der Artikel in Teil 2 hinzu:

Список статей (глав) второй части:

Графические интерфейсы II: Элемент "Menüpunkt". (Глава 1)
Графические интерфейсы II: Элементы "Trennungslinie". и "Kontextmenü". (Глава 2)
Графические интерфейсы II: Настройка обработчиков событий библиотеки (Глава 3)
Графические интерфейсы II: Элемент "Hauptmenü". (Глава 4)

Im Moment ist nur der erste (Kapitel 1) anklickbar. Ebenso würde ich gerne alle Links am Ende der Kapitel 2 und 3 sehen.

 
Ich erhalte diese Fehler und weiß nicht, warum :(