Hallo. Wie kann ich den Kompilierungsfehler beheben?
ON_END_CREATE_GUI' - nicht deklarierter Bezeichner Programme.mqh 307 29
Hallo. Wie kann ich den Kompilierungsfehler beheben?
'ON_END_CREATE_GUI' - nicht deklarierter Bezeichner Programme.mqh 307 29
Bibliothek aktualisieren:
EasyAndFastGUI - Bibliothek zur Erstellung grafischer Oberflächen
Und Bibliotheksdateien, die dem Artikel beigefügt sind.
| Name der Datei | Kommentar |
|---|---|
| MQL5\Include\EasyAndFastGUI\Controls\Table.mqh | Aktualisierte CTable-Klasse |
| MQL5\Include\EasyAndFastGUI\Keys.mqh | Aktualisierte CKeys-Klasse |
Hallo Anatoli,
zunächst einmal herzlichen Glückwunsch zu deiner tollen Arbeit.
Ich habe versucht, deine Dateien zu kompilieren, aber vielleicht fehlt eine Konstante, insbesondere diese: "ON_END_CREATE_GUI" in Program.h.
Muss sie in der Datei defines.h hinzugefügt werden?
Vielen Dank im Voraus
Manuele
Hallo Anatoli,
zunächst einmal herzlichen Glückwunsch zu deiner tollen Arbeit.
Ich habe versucht, deine Dateien zu kompilieren, aber vielleicht fehlt eine Konstante, insbesondere diese: "ON_END_CREATE_GUI" in Program.h.
Muss sie in der Datei defines.h hinzugefügt werden?
Vielen Dank im Voraus
Manuele
#define ON_END_CREATE_GUI (42)
Hat bei mir funktioniert.
Ich habe die Anhänge heruntergeladen, konnte aber die folgenden Includes nicht auflösen
#include <EasyAndFastGUI\WndEvents.mqh>
#include <EasyAndFastGUI\TimeCounter.mqh>
Ich habe überprüft, dass sie nicht mit den Anhängen heruntergeladen wurden
Anatoly, bitte beraten Sie mich in diesem Punkt.
In Abb. 11 wurde ein Standarddiagramm eingefügt. Die Frage lautet wie folgt. Hat es eine eindeutige ID? Entweder habe ich sie nicht richtig gesucht, oder sie ist irgendwo weit weg versteckt. Meine Aufgabe ist es, meine eigene kleine Leinwand auf dieses hinzugefügte Diagramm zu zeichnen. Vielen Dank für die großartige Arbeit an der Grafikbibliothek.
Ich versuche, diesen riesigen und vielschichtigen GUI-Komplex, für den ich dem Autor sehr dankbar bin, zu verinnerlichen, aber es stellen sich einige Fragen.
Warum wird AddToElementsArray mehrmals aufgerufen, während ein Element erstellt wird? Wenn z.B. ein Tab Teil eines Fensters ist, sollte der Aufruf m_tabs1.AddToElementsArray(0,m_date_scale) nicht automatisch CWndContainer::AddToElementsArray vom Parent aufrufen (soweit ich die Terminologie verstehe, werden Parents als Hauptelemente bezeichnet, und alle Elemente sollten sie haben, und alle sollten sich innerhalb von CWndContainer befinden, d.h. alle Verbindungen für den automatischen Aufruf sind vorhanden)?
Im Prinzip sieht es suboptimal aus, wenn beim Erstellen von Elementen zwei "Zähler" im Sinne von Methoden (child.MainPointer(parent) und AddToElementsArray(child)) aufgerufen werden. Warum dreht man die Eltern-Untergebenen-Beziehung nicht in die entgegengesetzte Richtung und kombiniert sie in einem Aufruf a la parent.Add(child), der intern AddToElementsArray und child.MainPointer(parent) macht, wenn nötig?
Warum sollten wir AddToElementsArray für Tabs vor der Objekterzeugung machen, aber für CWndContainer danach?
Warum ist es nicht möglich, alle Optionen zu setzen, bevor ein Element erstellt wird? Jetzt stellt sich heraus, dass die Eigenschaften künstlich in zwei Teile aufgeteilt sind: diejenigen, die vor dem Aufruf von Create gesetzt werden müssen, und diejenigen, die später aufgerufen werden müssen. Und was verhindert, dass die Flagge und der Textstatus in derselben Gruppe von Operatoren gesetzt werden, in der auch die Größe, die Optionen usw. festgelegt werden?
Warum CWndContainer::AddToElementsArray mit dem ersten Parameter 0, wenn in den allermeisten Fällen ein Fenster verwendet wird und der Index als zweiter optionaler Parameter angegeben werden kann.
War es nicht eine Idee, die Erstellung der verschiedenen Elementtypen mit einer einzigen virtuellen Create-Methode zu vereinheitlichen? Jetzt hat jeder Elementtyp seine eigene CreateBlaBlaBlaBla-Funktion - warum ist das so?
Warum wird in den Hilfsmethoden (z.B. CreateComboBoxTF, etc.) nur die Position des Elements über Parameter festgelegt, und seine Größe wird im Inneren angegeben? Unter Berücksichtigung der Ausrichtung sollten sich Größe und Position "synchron" ändern, also an einer Stelle im Programm, d.h. wenn die Koordinaten als Parameter von außen übergeben werden sollen, dann sollte auch die Größe dort sein.
Im Artikel https://www.mql5.com/de/articles/3366 gab es ein Beispiel für einen Expert Advisor mit allen Steuerelementen, aber es ist nicht mit der neuesten Version kompatibel. Gibt es ein aktualisiertes Beispiel?
in vs Code, win 10 64bit, versuchen, das Panel zu kompilieren, bekomme ich "veraltet" Warnungen und 1 Fehler:
Compiling........: TradePanel.mq5 C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Element.mqh(379,24) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Scrolls.mqh(625,15) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Scrolls.mqh(927,15) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\TextBox.mqh(1844,14) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ListView.mqh(704,45) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ListView.mqh(1468,71) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\TreeItem.mqh(85,15) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ProgressBar.mqh(156,4) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ProgressBar.mqh(260,4) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Table.mqh(3416,109) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Tabs.mqh(588,47) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Tooltip.mqh(82,17) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Window.mqh(1289,8) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(302,36) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(302,56) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(1426,20) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(1761,33) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(1761,53) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Experts\TradePanel\CreateGUI.mqh(111,20) : error 199: 'AddItem' - wrong parameters count C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Experts\TradePanel\CreateGUI.mqh(111,28) : warning 181: implicit conversion from 'number' to 'string' Result: 1 errors, 19 warnings
Vielen Dank für das Teilen,
s Liebe nia
Die Datei TradePanel.mq5 ist nicht kompiliert!
- 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 Ein Expert Advisor mit GUI: Erstellen des Panels (Teil I) :
Trotz der Tatsache, dass viele Händler immer noch den manuellen Handel bevorzugen, ist es kaum möglich, die Automatisierung von Routineoperationen vollständig zu vermeiden. Der Artikel zeigt ein Beispiel für die Entwicklung eines Expert Advisor mit Signalen von mehreren Symbolen für den manuellen Handel.
Das Element vom Typ CStandardChart dient zur Visualisierung von Daten durch Symbole. Standardmäßig wird EURUSD D1 angezeigt. Es zeichnet sich durch folgende Eigenschaften aus.
Bei Bedarf ist es möglich, ein Array von Charts in einer horizontalen Zeile zu erstellen. Wir verwenden dazu die Methode CStandardChart::AddSubChart(), indem wir das Symbol und den Zeitrahmen als Argumente übergeben. In diesem Fall benötigen wir jedoch ein einziges Chart, während Symbole und Zeitrahmen über andere Steuerelemente umgeschaltet werden.
Autor: Anatoli Kazharski