Diskussion zum Artikel "Verwendung von Layouts und Containern für GUI Controls: Die CBox Klasse"

 

Neuer Artikel Verwendung von Layouts und Containern für GUI Controls: Die CBox Klasse :

Dieser Artikel präsentiert eine alternative Methode für die Erzeugung von GUI-Controls, basierend auf Layouts und Containern und der Verwendung eines Layoutmanagers, der CBox Klasse. Die CBox Klasse ist ein externes Control, welches als ein Container für besondere Controls in einem GUI-Panel agiert. Sie vereinfacht das Designen von grafischen Panels und in einigen Fällen reduziert sie auch den Programmieraufwand.

Jetzt verwenden wir die c-box Klasse um ein einfaches Panel zu implementieren: einen Pip-Value Rechner. Der Pip-Value Rechner-Dialog beinhaltet drei Felder mit dem Typen CEdit, namentlich:

  • name des Symbols oder Finanzinstruments;
  • Größe von 1 pip für das angegebene Symbol;
  • Wert von 1 pip für das angegebene Symbol.

Somit haben wir sechs unterschiedliche Controls, inklusive der Labels (CLabel) für jedes Feld, und ein Button (CButton) für das Ausführen der Berechnung. Nachfolgend sehen Sie ein Screenshot des Rechners:

Pip value Rechner - screenshot

Abbildung 8. Pip Value Rechner

Autor: Enrico Lambino

 

Vielen Dank, Enrico für den Artikel, die CBox und die Beispiele! sehr nützlich.

Habe eine Frage, wenn auch etwas unabhängig, was sollte hinzugefügt werden, wenn ich will, dass der Benutzer in der Lage sein, die Dialoggröße durch Ziehen der Grenze des Dialogs zu ändern?

Nochmals vielen Dank!

 
Amir Yacoby:

Ich habe eine Frage, wenn auch etwas unabhängig, was sollte hinzugefügt werden, wenn ich möchte, dass der Benutzer in der Lage sein, die Dialoggröße durch Ziehen des Randes des Dialogs zu ändern?

Ich bin mir da nicht so sicher, aber soweit ich weiß, wird diese Funktion noch nicht unterstützt. Aber es wäre gut, wenn das möglich wäre, da die einzelnen Steuerelemente und Container weiterhin ihren Layouts folgen würden, ohne dass sie neu positioniert werden müssten (z.B. wenn Layouts zentriert sind, würde der Platz maximiert werden, so dass die Steuerelemente immer noch in der Mitte bleiben würden). In diesem Fall müssen Sie lediglich die OnResize()-Methode der Klasse überschreiben, um die Pack()-Methode des Hauptcontainers CBox erneut aufzurufen.
 
Enrico Lambino:
Ich bin mir da nicht so sicher, aber soweit ich weiß, wird diese Funktion noch nicht unterstützt. Aber es wäre gut, wenn das möglich wäre, da die einzelnen Steuerelemente und Container immer noch ihren Layouts folgen würden, ohne dass sie neu positioniert werden müssten (z.B. wenn Layouts zentriert sind, würde der Platz maximiert werden, so dass die Steuerelemente immer noch in der Mitte bleiben würden). In diesem Fall müssen Sie lediglich die OnResize()-Methode der Klasse überschreiben, um die Pack()-Methode des Haupt-CBox-Containers erneut aufzurufen.
Ja, es scheint, wie MT Terminal nicht unterstützt. Großartige Arbeit, nochmals vielen Dank!
 

eine solche Klasse sollte von den Entwicklern in den Standard aufgenommen werden!

super!!!

 
WeChat kostenlose Erfahrung schreien, ein weiterer Gewinn mehr als tausend Punkte von QQ-Gruppe: 375124107, plus Gruppe bitte beachten Sie "77", ich danke Ihnen für die Zusammenarbeit!
 

Wo befindet sich die Datei "Layouts\Box.mqh"?

Ich habe das gesamte Verzeichnis "Layouts" nicht gefunden. Danke!

 
Paul Xiang:

Wo befindet sich die Datei "Layouts\Box.mqh"?

Ich habe das gesamte Verzeichnis "Layouts" nicht gefunden. Danke!

Am Ende dieses Beitrags (hier, und scrollen Sie bis zum Ende des Artikels: https: //www.mql5.com/en/articles/1867)
Using Layouts and Containers for GUI Controls: The CBox Class
Using Layouts and Containers for GUI Controls: The CBox Class
  • 2015.07.09
  • Enrico Lambino
  • www.mql5.com
This article presents an alternative method of GUI creation based on layouts and containers, using one layout manager — the CBox class. The CBox class is an auxiliary control that acts as a container for essential controls in a GUI panel. It can make designing graphical panels easier, and in some cases, reduce coding time.
 
Sehr interessant ... aber für Neulinge, wie mich, alle diese Dateien, wo sie platziert werden sollten?
 
Hallo. Sehr schöne Klasse, aber wenn wir radiogroup oder checkgeoup innerhalb einer Box setzen, erscheint es nicht
Gibt es eine Möglichkeit, dies zu ändern?
Wenn ich den gleichen Code beibehalte, aber ihn im Hauptfenster/Dialog einfüge, kann ich meine Radiogruppe sehen

Danke, Luc
 
LucTelmosse:
Hallo. Sehr schöne Klasse, aber wenn wir radiogroup oder checkgeoup innerhalb einer Box setzen, erscheint es nicht
Gibt es eine Möglichkeit, dies zu ändern?
Wenn ich den gleichen Code beibehalte, aber ihn im Hauptfenster/Dialog einfüge, kann ich meine Radiogruppe sehen

Danke. luc

Hallo,

Es ist möglich, eine Radiogruppe oder Kontrollgruppe anzuzeigen. Ich habe einige GUIs, die dies tun. Vielleicht gibt es andere Probleme, z.B. dass der CBOx-Container nicht hinzugefügt werden kann oder dass der Container zu klein ist. Während der Entwicklung stelle ich den Hintergrund (Haupt- und Container) auf eine bestimmte Farbe ein, damit man leichter erkennen kann, wo die Grenzen liegen. Ich kann Ihnen weiterhelfen, wenn Sie den Code zeigen können, zumindest für die Create() -Funktion des Hauptdialogs.