@Andreas: Das hat auch nicht mit einer früheren Version des Compilers funktionieren können.
Versuch doch mal die switch-Anweisung bei solchen Konstruktionen. Sind 'imho' übersichtlicher und schneller als multiple if then else Konstruktionen.
Verwende den Constructor zum Initialisieren von Variablen.
Ich würde ähnliches etwa so machen:
enum ENUM_AMA_ZONE
{
AMA_ZONE_INIT,
AMA_ZONE_BUY,
AMA_ZONE_SELL,
};
class CPanelControls
{
private:
ENUM_AMA_ZONE amaValue;
public:
void CPanelControls:: CPanelControls(void){amaValue = AMA_ZONE_INIT;}; // initialization in constructorvoid CPanelControls::~CPanelControls(void){}; // destructor not needed but must be defined, does nothingbool CPanelControls::LoadStaticPanel(void);
};
bool CPanelControls::LoadStaticPanel(void)
{
switch(amaValue)
{
case AMA_ZONE_INIT:
// some codebreak; // could be also a return true or falsecase AMA_ZONE_BUY:
// some codebreak; // could be also a return true or falsecase AMA_ZONE_SELL:
// some codebreak; // could be also a return true or false
}
return(true);
}
Otto, auch Dir Dank für die Feststellung, das das letzlich nicht gehen konnte, muß aber in einem Punkt widersprechen: das vorherige Metaeditor Build
hat das alles "geschluckt"! For whatever reason... Nebenbei, Du hast einen guten Tip zu der Case Konstruktion geliefert. Ich komme wieder - mit einer Erfolgsmeldung!
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
@Chris70: Vollkommen richtig.
@Andreas: Das hat auch nicht mit einer früheren Version des Compilers funktionieren können.
Versuch doch mal die switch-Anweisung bei solchen Konstruktionen. Sind 'imho' übersichtlicher und schneller als multiple if then else Konstruktionen.
Verwende den Constructor zum Initialisieren von Variablen.
Ich würde ähnliches etwa so machen:
Ich hoffe du siehst den Unterschied.
Chris, das macht Sinn! Du bist der erste, der mir den Umgang mit ENUM Deklarationen nachvollziebar erklärt! Ich bin der "Metatrade Logik" gefolgt,
(danke für diese Eselsbrücke..) die hier nicht greift. Nur: Warum bin ich über 2 Jahre damit klargekommen? Erst das Compiler Update hat mich in
diesen Schlamassel gebracht, was im Nachhinein ja auch richtig ist...
Ich probiere es in den nächsten Tagen aus, scheint mit aber sowas von sinnvoll, daß ich hoffe, Dir mit einem kurzen "Paßt!" zu danken!
Gruß
Andreas
Otto, auch Dir Dank für die Feststellung, das das letzlich nicht gehen konnte, muß aber in einem Punkt widersprechen: das vorherige Metaeditor Build
hat das alles "geschluckt"! For whatever reason... Nebenbei, Du hast einen guten Tip zu der Case Konstruktion geliefert. Ich komme wieder - mit einer Erfolgsmeldung!
Nochmal danke!
Andreas
..kurz und bündig: Alles wieder gut!! Die Enums Deklaration hat der neue Compiler "etwas" genauer genommen und jetzt ist alles wieder
im grünen Bereich. Aber die meiste Zeit habe ich mit der Lokalisierung des "internal error 112" als Reaktion auf die falsche Deklaration gebraucht.
Besser: internal error 112 weist auf keine Programmstelle hin, liefert Zeile/Spalte 0/0. Nach vergeblichen Windows Ursachen Forschung dann Stück für
Stück das Programm "zurückgebaut", auskommentiert usw. und so stieß die Indizienkette auf das Enums Konstrukt. Das soll einer wissen...
Also nochmals herzlichen Dank für diese Unterstützung!
Gruß
Andreas
..kurz und bündig: Alles wieder gut!! Die Enums Deklaration hat der neue Compiler "etwas" genauer genommen und jetzt ist alles wieder
im grünen Bereich. So war Deine Erläuterung dazu absolut richtig und hilfreich! Aber die meiste Zeit habe ich mit der Lokalisierung des
"internal error 112" als Reaktion auf die falsche Deklaration gebraucht. Besser: internal error 112 weist auf keine Programmstelle hin,
liefert Zeile/Spalte 0/0. Nach vergeblichen Windows Ursachenforschung dann Stück für Stück das Programm "zurückgebaut", auskommentiert usw.
und so stieß die Indizienkette auf das Enums Konstrukt. Das soll einer wissen...
Also nochmals herzlichen Dank für diese Unterstützung!
Gruß
Andreas