Diskussion zum Artikel "Verbessern Sie Ihre Handelscharts durch interaktiven GUI's in MQL5 (Teil II): Ein bewegliches GUI (II)" - Seite 2

 

HILFE!


Ihre Vorschau hat mich neugierig gemacht und mich zu der Überzeugung gebracht, dass ich keine Klasse Text erstellen muss. Stattdessen plane ich, Ihre GUI als Basisklasse zu verwenden, die von den Kindklassen meiner einzelnen Panels geerbt wird. Die GUI-Klasse sollte die Definition für eine Funktion Move(....) enthalten, aber keinen funktionierenden Code.Jede der Child-Klassen ist im Wesentlichen eine Shell, die von der Basisklasse erbt. Zusätzlich wird die Child-Klasse eine Move-Funktion enthalten, die die x&y-Koordinaten von der GUI onEvent-Funktion übernimmt und Code enthält, um diese Koordinaten den x-y-Ordinaten jedes der spezifischen Objekte auf dem Panel zuzuweisen.

Ich bin zwar ein guter Programmierer, aber nicht so gut in der Objektprogrammierung, denn ich bin ein Neuling. Ich erhalte die Meldung "clsGUI::CreatePanel - cannot access private member function" Ich nehme an, dass dies bedeutet, dass ich einige andere Qualifizierer benötige, um ihre Verwendung direkt in der Kindklasse zu ermöglichen, um den Fehler zu beheben. Bisher haben meine Referenzen die Lösung nicht gefunden.

Die Include-Datei und das Programm sind angehängt und stammen wie Ihr Code, enthalten aber viele Änderungen, die ich vorgenommen habe, um das Problem zu lösen.

WARNUNG AN ALLE, DIE DIESEN CODE VERWENDEN, ER ENTHÄLT VIELE FEHLER UND ICH TRAGE KEINE VERANTWORTUNG


Vielen Dank für Ihre Hilfe


CapeCoddah

 
CapeCoddah #:

HILFE!


Ihre Vorschau hat mich neugierig gemacht und mich zu der Überzeugung gebracht, dass ich keine Klasse Text erstellen muss. Stattdessen plane ich, Ihre GUI als Basisklasse zu verwenden, die von den Kindklassen meiner einzelnen Panels geerbt wird. Die GUI-Klasse sollte die Definition für eine Funktion Move(....) enthalten, aber keinen funktionierenden Code.Jede der Child-Klassen ist im Wesentlichen eine Shell, die von der Basisklasse erbt. Zusätzlich wird die Child-Klasse eine Move-Funktion enthalten, die die x&y-Koordinaten von der GUI onEvent-Funktion übernimmt und Code enthält, um diese Koordinaten den x-y-Ordinaten jedes der spezifischen Objekte auf dem Panel zuzuweisen.

Ich bin zwar ein guter Programmierer, aber nicht so gut in der Objektprogrammierung, denn ich bin ein Neuling. Ich erhalte die Meldung "clsGUI::CreatePanel - cannot access private member function" Ich nehme an, dass dies bedeutet, dass ich einige andere Qualifizierer benötige, um ihre Verwendung direkt in der Kindklasse zu ermöglichen, um den Fehler zu beheben. Bisher haben meine Referenzen die Lösung nicht gefunden.

Die Include-Datei und das Programm sind angehängt und stammen aus Ihrem Code, enthalten aber viele Änderungen, die ich bei dem Versuch, das Problem zu lösen, vorgenommen habe.

WARNUNG AN ALLE, DIE DIESEN CODE VERWENDEN, ER ENTHÄLT VIELE FEHLER UND ICH TRAGE KEINE VERANTWORTUNG


Vielen Dank für Ihre Hilfe


CapeCoddah

In Zeile 103 der .mqh-Datei:

class clsSample : clsGUI

zu

class clsSample : public clsGUI

Problem gelöst.


Konzept: Vererbungsart ->

Hier wird erklärt, was die einzelnen Vererbungsarten bedeuten:

  • Öffentliche Vererbung ( class Child : public Parent ): Öffentliche und geschützte Elemente der Klasse Parent werden zu öffentlichen bzw. geschützten Elementen der Klasse Child. Im Wesentlichen bedeutet öffentliche Vererbung "ist-a". Zum Beispiel ist ein "Child" ein Typ von "Parent".

  • Geschützte Vererbung ( class Child : protected Parent ): Öffentliche und geschützte Mitglieder der Klasse Parent werden beide zu geschützten Mitgliedern der Klasse Child. Das bedeutet, dass auf sie von der Klasse Child und ihren Unterklassen aus zugegriffen werden kann, aber nicht von außerhalb dieser Klassen.

  • Private Vererbung ( class Child : private Parent ): Sowohl öffentliche als auch geschützte Mitglieder der Klasse Parent werden zu privaten Mitgliedern der Klasse Child. Das bedeutet, dass auf sie nur innerhalb der Klasse Child selbst zugegriffen werden kann, nicht aber von ihren Unterklassen oder von außerhalb der Klasse.

Ich hoffe, das hilft!

PS: Verwenden Sie Chart Redraw, da es sonst auf einen Kurs-Tick wartet.