Heute habe ich begonnen, diese Bibliothek zu verwenden, Build von 2019.03.13 16:43 (ich denke Build 16). Also, ich benutze es, um Tabellen zu erstellen, es funktioniert fast perfekt, ich habe als Referenz die Artikel verwendet:
https://www.mql5.com/de/articles/2500#para6
https://www.mql5.com/de/articles/2897#para7
Für mich ist es wichtig, die Sortierfunktion zu haben, also verwende ich die Bibliothek gemäß den Anweisungen im Artikel "X". Wenn ich diesen Build (Build 6) verwende, funktioniert die Tabelle sehr gut, aber wenn ich den letzten Build (Build 16) verwende, sortiert die Tabelle die Elemente nicht, wenn ich auf die Kopfzellen klicke.
Bei der Untersuchung der Hauptunterschiede habe ich folgendes in der Datei Table.mqh gefunden.
Dies ist im Build 6:
void CTable::SortData(constuint column_index=0)
{
...
//--- Den Index der letzten sortierten Datenspalte speichern
m_is_sorted_column_index=(int)column_index;
//--- Sortierung
QuickSort(first_index,last_index,column_index,m_last_sort_direction);
//--- Aktualisieren der Tabelle
UpdateTable();
//--- Das Symbol entsprechend der Sortierrichtung einstellen
m_sort_arrow.State((m_last_sort_direction==SORT_ASCEND)? true : false);
}
Dies ist im Build 16:
void CTable::SortData(constuint column_index=0,constint direction=WRONG_VALUE)
{
...
//--- Запомним индекс последнего отсортированного столбца данных
m_is_sorted_column_index=(int)column_index;
//--- Сортировка
QuickSort(first_index,last_index,column_index,m_last_sort_direction);
}
Im neuen Build gibt es keine "Update"-Methode, daher denke ich, dass dies der Grund für die fehlende Sortierung ist.
Also habe ich diese Änderung vorgenommen und es hat offensichtlich funktioniert:
void CTable::SortData(constuint column_index=0,constint direction=WRONG_VALUE)
{
...
//--- Запомним индекс последнего отсортированного столбца данных
m_is_sorted_column_index=(int)column_index;
//--- Сортировка
QuickSort(first_index,last_index,column_index,m_last_sort_direction);
//--- Aktualisieren der Tabelle
Update(true);
}
PS: Kommentare auf Russisch sind nicht sehr hilfreich.
The first article Graphical Interfaces I: Preparation of the Library Structure (Chapter 1) explains in detail what this library is for. You will find a list of articles with links at the end of each chapter. There, you can also download a complete version of the library at the current stage of development. The files must be placed in the same...
Wenn ich ExampleEAF aus der Bibliothek als Indikator in MT4 baue, stürzt der Indikator mit einem Fehler ab, wenn ich versuche, das Fenster auf den Chart zu ziehen
In MT5 funktioniert er einwandfrei.
array out of range in 'WndEvents.mqh' (288,72)
Wenn Sie eine Prüfung auf Bereichsüberschreitung im ersten Zyklus hinzufügen, funktioniert das Ziehen.
void CWndEvents::CheckElementsEvents(void)
{
//--- Behandlung des Mauszeigerbewegungsereignissesif(m_id==CHARTEVENT_MOUSE_MOVE)
{
//--- Beenden, wenn sich das Formular in einem anderen Unterfenster des Diagramms befindetif(!m_windows[m_active_window_index].CheckSubwindowNumber())
return;
//--- Nur verfügbare Elemente prüfenint available_elements_total=CWndContainer::AvailableElementsTotal(m_active_window_index);
for(int e=0; e<available_elements_total; e++)
{
// !!! Zusätzliche Prüfungif (e >= ArraySize(m_wnd[m_active_window_index].m_available_elements)) continue;
CElement *el=m_wnd[m_active_window_index].m_available_elements[e];
//--- Überprüfung des Fokus über Elemente
el.CheckMouseFocus();
//--- Ereignisbehandlung
el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
}
}
//--- Alle Ereignisse außer Mauszeigerbewegungelse
{
int elements_total=CWndContainer::ElementsTotal(m_active_window_index);
for(int e=0; e<elements_total; e++)
{
//--- Nur verfügbare Elemente prüfen
CElement *el=m_wnd[m_active_window_index].m_elements[e];
if(!el.IsVisible() || !el.IsAvailable() || el.IsLocked())
continue;
//--- Ereignisbehandlung im Item-Handler
el.OnEvent(m_id,m_lparam,m_dparam,m_sparam);
}
}
//--- Weiterleitung des Ereignisses an die Anwendungsdatei
OnEvent(m_id,m_lparam,m_dparam,m_sparam);
}
aber das "Erweitern" des Fensters auf den gesamten Chartbereich und das Zurückkehren funktioniert nicht mehr.
Können Sie mir sagen, wie ich dieses Problem beheben kann, damit es auch in MT4 normal funktioniert?
Worin besteht der Unterschied? Keine Warnung während der Kompilierung in MT4, ich weiß nicht, in welche Richtung ich gehen soll.
Auch in MT4 beim Kompilieren als Indikator funktioniert das Umschalten des Fokus nicht in dem Sinne, dass, wenn Sie eine Dropdown-Liste öffnen und irgendwo daneben klicken, die Liste nicht geschlossen wird und der Eingabefokus nicht zu einem anderen Element wechselt, im Expert-Modus funktioniert das normal.
In MT5 funktionieren sowohl Expert Advisor als auch Indikator normal.
Könnten Sie mir bitte sagen, wie ich die Standardschriftart eines Programms (Expert Advisor) mit dieser Bibliothek ändern kann? Es ist diejenige, die alles ab dem Titel in der Kopfzeile des Programms druckt. Zumindest die Größe ändern (vergrößern).
Heute habe ich begonnen, diese Bibliothek zu verwenden, Build von 2019.03.13 16:43 (ich denke Build 16). Also, ich benutze es, um Tabellen zu erstellen, es funktioniert fast perfekt, ich habe als Referenz die Artikel verwendet:
https://www.mql5.com/de/articles/2500#para6
https://www.mql5.com/de/articles/2897#para7
Für mich ist es wichtig, die Sortierfunktion zu haben, also verwende ich die Bibliothek gemäß den Anweisungen im Artikel "X". Wenn ich diesen Build (Build 6) verwende, funktioniert die Tabelle sehr gut, aber wenn ich den letzten Build (Build 16) verwende, sortiert die Tabelle die Elemente nicht, wenn ich auf die Kopfzellen klicke.
Bei der Untersuchung der Hauptunterschiede habe ich folgendes in der Datei Table.mqh gefunden.
Dies ist im Build 6:
Dies ist im Build 16:
Im neuen Build gibt es keine "Update"-Methode, daher denke ich, dass dies der Grund für die fehlende Sortierung ist.
Also habe ich diese Änderung vorgenommen und es hat offensichtlich funktioniert:
PS: Kommentare auf Russisch sind nicht sehr hilfreich.
Wo befindet sich die Label-Klasse in der Bibliothek? Wie erstellt man ein einzelnes Label?
Sag Gustavo! Schön?
Ich habe mir auch hier den Kopf zerbrochen, um die Diagrammsortierung zum Laufen zu bringen, und ich habe es zufällig gefunden ...
Es ist notwendig, die Tabelle im ON_SORT_DATA-Ereignis Ihrer "program.mqh" zu aktualisieren, etwa so:
Hoffentlich hilft das!
Hier hat es perfekt funktioniert !!!
T +
Raul
Dies ist ein englischsprachiges Forum. Bitte schreiben Sie nur auf Englisch.
Verwenden Sie bei Bedarf das Übersetzungstool der Website.
Wenn Sie Code posten, benutzen Sie die Code-Taste (Alt +S).
Ich habe Ihren Beitrag dieses Mal bearbeitet.
Wenn ich ExampleEAF aus der Bibliothek als Indikator in MT4 baue, stürzt der Indikator mit einem Fehler ab, wenn ich versuche, das Fenster auf den Chart zu ziehen
In MT5 funktioniert er einwandfrei.
Wenn Sie eine Prüfung auf Bereichsüberschreitung im ersten Zyklus hinzufügen, funktioniert das Ziehen.
aber das "Erweitern" des Fensters auf den gesamten Chartbereich und das Zurückkehren funktioniert nicht mehr.
Können Sie mir sagen, wie ich dieses Problem beheben kann, damit es auch in MT4 normal funktioniert?
Worin besteht der Unterschied? Keine Warnung während der Kompilierung in MT4, ich weiß nicht, in welche Richtung ich gehen soll.
Auch in MT4 beim Kompilieren als Indikator funktioniert das Umschalten des Fokus nicht in dem Sinne, dass, wenn Sie eine Dropdown-Liste öffnen und irgendwo daneben klicken, die Liste nicht geschlossen wird und der Eingabefokus nicht zu einem anderen Element wechselt, im Expert-Modus funktioniert das normal.
In MT5 funktionieren sowohl Expert Advisor als auch Indikator normal.
Eine weitere interessante Panne bei Tabellen.
Nach mehreren Eingaben verdoppeln sich die Zeichen und verdreifachen sich dann (siehe Gif).
Woran kann das liegen?
CreateTextEdit scheint keine chinesische Eingabe zu unterstützen?
CreateTextEdit scheint keine chinesischen Eingaben zu unterstützen?
Hallo
Wo kann ich die MT4-Version dieser Bibliothek herunterladen?