Diskussion zum Artikel "Die Verwendung von Layout und Containern für GUI Controls: Die CGrid Klasse"
Tolle Arbeit wie immer, Enrico.
Ich habe versucht, aber konnte es nicht machen, um zwei CEdit Felder ein nur durch anoter ohne Abstand (feste Positionierung) zu platzieren - aber es scheint, die Klasse nur Auto-Positionen durch den Layout-Stil.
Kann man das machen? Ich möchte zum Beispiel einen Feldnamen und einen Wert wie diesen:
Total Orders: 3
zwei CEdit's verwenden, aber sie nebeneinander platzieren?
Vielen Dank
Tolle Arbeit wie immer, Enrico.
Ich habe versucht, aber konnte es nicht machen, um zwei CEdit Felder ein nur durch anoter ohne Abstand (feste Positionierung) zu platzieren - aber es scheint, die Klasse nur Auto-Positionen durch den Layout-Stil.
Kann man das machen? Ich möchte zum Beispiel einen Feldnamen und einen Wert wie diesen:
Total Orders: 3
zwei CEdit's verwenden, aber sie nebeneinander platzieren?
Vielen Dank
Bitte sehr.
Das Raster lässt nur eine einzige Komponente pro Zelle zu. Wenn Sie mehr als ein Steuerelement auf einer bestimmten Zelle platzieren möchten, sollten Sie sie innerhalb von CBox oder CGrid verschachteln.
Eine andere Möglichkeit wäre, CGrid(tk) oder CBox so zu erweitern, dass Sie direkt angeben können, welche Steuerelemente eine feste Positionierung verwenden sollen und welche den Layout-Styles folgen sollen.
Beim Kompilieren des "Grid Sample.mq5" erhalte ich den Fehler:
Ich vermute, die Sprache wurde aktualisiert. Vorher war es möglich, die Superklasse auf diese Weise aufzurufen. Aber jetzt sehe ich, dass es jetzt möglich ist, die Funktionen ClientAreaWidth und ClientAreaHeight für Instanzen von CDialog und deren Erben aufzurufen. Der Code:
m_main.Create(chart,name+"main",subwin,0,0,ClientAreaWidth(),ClientAreaHeight())
wäre die entsprechende Anweisung.

- 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 Die Verwendung von Layout und Containern für GUI Controls: Die CGrid Klasse :
Dieser Artikel präsentiert eine alternative Methode für die Erzeugung eines GUI, basierend auf Layouts und Containern und der Verwendung eines Layout-Managers — die CGrid Klasse. Die CGrid Klasse ist ein externes Control, welches wie ein Container für andere Container und Controls agiert und ein Grid-Layout verwendet.
Um ein einfaches Beispiel für die Verwendung der ABC Klasse zu geben, präsentieren wir hier ein einfaches Gitter mit Buttons: Hier ist ein Screenshot einer GUI:
Figure 2. Ein einfaches Gitter mit Buttons
Wie wir sehen können, haben wir hier ein Gitter aus 3x3 Zellen, wobei jede Zelle einen Button enthält. Jeder Button wird gleichmäßig in dem Gitter verteilt, wobei das das Gitter die komplette Client-Area füllt.
Um dieses Grid erzeugen zu können, müssen wir einen EA oder einen Indikator erstellen, welcher den in dem Artikel über die CBox-klasse vorgegebenen Strukturen folgt, was im Wesentlichen den Beispielen über Controls im Metatrader ähnelt. Wir deklarieren also ein Source-Code-File, welches die Deklaration einer Instanz eines benutzerdefinierten CAppDialog-Fensters enthält (Zusammen mit anderen Eventhandler), und verbinden (link) es mit dem Header-File, welches die aktuelle Deklaration der verwendeten Klasse beinhaltet.
Autor: Enrico Lambino