Diskussion zum Artikel "Grafische Interfaces X: Updates für die Tabellendarstellung und ein optimierter Code (build 10)"

 

Neuer Artikel Grafische Interfaces X: Updates für die Tabellendarstellung und ein optimierter Code (build 10) :

Wir fahren fort neue Elemente der Tabellendarstellung hinzuzufügen (CCanvasTable). Eine Tabelle ist nun in der Lage: die Zeile unter der Maus hervorzuheben; eine Liste von Icons einer Zelle zuzuweisen und eine Methode aus der Liste ein Icon auszuwählen; die Möglichkeit während der Laufzeit Text einer Zelle zu setzen, zu verändern und noch mehr.

Der Screenshot unten zeigt das Beispiel einer Tabelle mit Icons in den Zellen:

 Fig. 1. Tabelle mit Icons in den Zellen.

Fig. 1. Tabelle mit Icons in den Zellen. 


Autor: Anatoli Kazharski

 
Interessante Ergänzungen für den Zeichentisch. Um ehrlich zu sein, habe ich mir von diesem Artikel etwas anderes erwartet. Nein, ich bin überhaupt nicht enttäuscht (im Gegenteil), ich lag nur wie immer mit meinen Annahmen falsch.

Ich dachte, wenn Sie zur Implementierung einer gezeichneten Schnittstelle übergegangen sind, würden Sie deren Konzept skizzieren, ihre Ideologie formulieren, die neue Technologie beschreiben. Ich dachte, Sie würden damit beginnen, die zuvor erstellte Funktionalität neu zu gestalten....

Dies ist jedoch im Moment nicht der Fall. Sie haben das Konzept der gezeichneten Benutzeroberfläche noch nicht formuliert und noch nicht mit der globalen Neugestaltung begonnen. Vielleicht wird diese globale Neugestaltung schrittweise erfolgen, von Artikel zu Artikel, und nicht revolutionär, wie ich es mir vorgestellt habe. Deshalb sage ich, dass ich mit meinen Erwartungen falsch lag.

Sie vermeiden überraschenderweise jegliche globale Neugestaltung der Bibliothek, was ich sehr seltsam finde.

Ich würde diesen Entwicklungsstil wie folgt definieren: "Entwicklung ist eine allmähliche Ausdehnung auf einer Ebene, auf der jedes lokale Problem durch seine eigene lokale Methode gelöst wird. Universalisierung, Verallgemeinerung und Komprimierung von Lösungen sind nicht angebracht. Revolutionäre Veränderungen im großen Stil sind ungünstig. Es lohnt sich, an allgemein akzeptierten Normen und Stilen festzuhalten und nicht mit ihnen in Konflikt zu geraten. ".

Mein Entwicklungsstil: "Entwicklung ist eine allmähliche Verallgemeinerung, die dazu führt, dass die Lösung neuer lokaler Aufgaben nicht auf der Ebene von Methoden, sondern auf der Ebene einzelner Linien innerhalb von Methoden erfolgt. Und selbst dann nicht immer. Es entstehen viel weniger neue Einheiten, und die alten Mechanismen werden immer mehr verfeinert. Es gibt eine allmähliche Beschleunigung der neuen lokalen Aufgaben. Globale Umgestaltungen sind schwierig und unvermeidlich, aber notwendig."

In den nächsten Artikeln werde ich auf Ihr Konzept der Zeichnungsschnittstellentechnik warten, um es mit meinem zu vergleichen.

P.S. Übrigens, wenn Sie daran interessiert sind, kann ich es skizzieren.

Ich wünsche Ihnen viel Glück.
 
Meinem Entwicklungskonzept würde ich hinzufügen: - "Im Namen der absoluten Effizienz ist es gerechtfertigt, konventionelle Ansätze, Normen und Stile zu opfern. Sie koennen ignoriert, gebrochen und veraendert werden, wenn sie der freien kreativen Entwicklung im Wege stehen".
 
Реter Konow:
...

Vielleicht wird diese globale Umverteilung schrittweise erfolgen, von Artikel zu Artikel, und nicht revolutionär, wie ich es mir vorgestellt hatte.

...


Ja, ganz genau.
 
@Anatoli Kazharski Ich würde gerne klären, was die Code-Optimierung ist? Ich frage, weil die Kompilierung mit verbundenen Bibliotheken manchmal bis zu 20 Sekunden dauert. Oder sollte das so sein?
 
Alexander Fedosov:
@Anatoli Kazharski Ich würde gerne klären, was die Code-Optimierung ist? Ich frage, weil die Kompilierung mit verbundenen Bibliotheken manchmal bis zu 20 Sekunden dauert. Oder sollte das so sein?


In Ihrem Fall, während der Entwicklung Ihrer MQL-Anwendung, setzen Sie den Parameter Optimize in der Datei"MetaTrader 5/Config/metaeditor.ini" auf Null, wie unten gezeigt:

...
[Experts]
Author=Copyright 2015, MetaQuotes Software Corp.
Address=http://www.mql5.com
Optimize=0
...

//---

Dann wird alles schnell kompiliert:

0 error(s), 0 warning(s), compile time: 351 msec                1       1

//---

Das ist nicht das, was der Artikel meint. In einigen Fällen geht es um die Steigerung der Leistung, in anderen Fällen um eine teilweise Universalisierung (Verpackung von sich wiederholenden Codefragmenten in separate Methoden und Platzierung in einer separaten Klasse).

 
Aus irgendeinem Grund bleibt keiner der Artikel 10 Expert Advisors auf dem Chart, und nach ein paar Sekunden, nachdem er nur die Form angezeigt hat, wird er von selbst aus dem Chart entfernt. Im Log steht "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) CWndEvents::CheckExpertSubwindowNumber > Das Löschen des Expert-Subwindow bewirkt, dass der Expert gelöscht wird!" und weiter "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) ExpertRemove() function called" . Was ist der Grund dafür?


 
Alexander:
Aus irgendeinem Grund bleibt keiner der Artikel 10 Expert Advisors auf dem Chart, und nach ein paar Sekunden, nachdem er nur eine Form angezeigt hat, wird er von selbst aus dem Chart entfernt. Im Log steht "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) CWndEvents::CheckExpertSubwindowNumber > Das Löschen des Expert-Subwindow bewirkt, dass der Expert gelöscht wird!" und weiter "2017.03.06 08:40:45.467 TestLibrary10 (SBER,D1) ExpertRemove() function called" . Was ist der Grund?

Ich habe noch einmal alle möglichen Situationen (die mir bekannt sind) geprüft, in denen dies passieren könnte, konnte es aber nicht reproduzieren.

Zeigen beide Test-Expert Advisors aus dem Artikel dieses Verhalten oder nur TestLibrary10 ? Was zeigen die Testexperten aus anderen Artikeln?

 
Anatoli Kazharski:

Ich habe noch einmal alle möglichen Situationen (von denen ich weiß) überprüft, in denen dies passieren könnte, konnte es aber nicht reproduzieren.

Zeigen beide Testexperten aus dem Artikel dieses Verhalten oder nur TestLibrary10 ? Und die Testexperten aus anderen Artikeln, was zeigen sie?


Alle EAs aus dem Ordner Artikel 10 zeigen dieses Verhalten, d.h. von TestLibrary7 bis TestLibrary10.
 
Alexander:

Dieses Verhalten zeigen alle EAs aus dem Ordner Artikel 10, d. h. von TestLibrary7 bis TestLibrary10.
Reproduziert. Das Problem tritt auf, wenn sich Indikatoren in Unterfenstern des Charts befinden. Dieses Verhalten trat vorher nicht auf. Ich werde das Problem untersuchen. Vielen Dank für Ihre Nachricht.
 
Anatoli Kazharski:
Reproduziert. Das Problem tritt auf, wenn das Diagramm Indikatoren in Unterfenstern enthält. Vorher gab es dieses Verhalten nicht. Ich werde das Problem untersuchen. Vielen Dank für die Nachricht.

Als ich die Zeilen 22 und 23 in der Datei MainWindow.mqh des Expert Advisors TestLibrary07 //m_window.AutoXResizeMode(true); und //m_window.AutoYResizeMode(true); auskommentiert habe, hat dieser Expert Advisor normal funktioniert.