Diskussion zum Artikel "DoEasy. Steuerung (Teil 32): Horizontale ScrollBar, Scrollen mit dem Mausrad"

 

Neuer Artikel DoEasy. Steuerung (Teil 32): Horizontale ScrollBar, Scrollen mit dem Mausrad :

In diesem Artikel werden wir die Entwicklung der Funktionalität des horizontalen Rollbalkenobjekts abschließen. Wir werden auch die Möglichkeit schaffen, den Inhalt des Containers durch Bewegen des Schiebereglers und Drehen des Mausrades zu scrollen, sowie Ergänzungen zur Bibliothek vornehmen, die die neue Auftragsausführungspolitik und die neuen Laufzeitfehlercodes in MQL5 berücksichtigen.

Um den Test durchzuführen, werde ich den EA aus dem vorigen Artikel ohne jegliche Änderungen verwenden. Kompilieren wir ihn und führen ihn auf dem Chart mit der Einstellung „No“ für die automatische Größenanpassung des Containers an seinen Inhalt aus:



Überprüfen wir nun die Funktion aller Komponenten der erstellten horizontalen Bildlaufleiste:


Alles funktioniert wie geplant.

Autor: Artyom Trishkin

 
Artem, wie sieht es mit der Bibliothek aus, wird sie sich weiterentwickeln? Imho müssen wir weiter graben. Anatoly, zum Beispiel, hat aus bekannten Gründen aufgehört, seine Bibliothek öffentlich zu unterstützen ((
 
Denis Kirichenko #:
Artem, wie sieht es mit der Bibliothek aus, wird sie sich weiterentwickeln? Imho müssen wir weiter graben. Anatoly, zum Beispiel, hat aus bekannten Gründen aufgehört, seine Bibliographie öffentlich zu unterstützen ((

Ja, natürlich wird sie das. Er hat eine Veröffentlichungspause eingelegt. Es gibt einen visuellen Fehler, der sehr unangenehm für das Auge ist - abgeschnittene Bereiche werden manchmal mit Flackern gezeichnet. Irgendwo gibt es eine unnötige vorzeitige Neuzeichnung des Graphen. Ich habe die Stelle noch nicht gefunden - es gibt eine Menge Zusammenhänge - das eine heilt man, das andere legt man lahm....

Sobald ich die Stelle gefunden habe, werde ich sie beheben und fortfahren.

 
Artyom Trishkin #:

Ja, natürlich wird es das. Ich habe eine Pause vom Posten eingelegt. Es gibt einen visuellen Fehler, der sehr unangenehm für das Auge ist - abgeschnittene Bereiche werden manchmal mit einem Flackern gezeichnet. Irgendwo wird das Diagramm unnötigerweise vorzeitig neu gezeichnet. Ich habe die Stelle noch nicht gefunden - es gibt eine Menge Zusammenhänge - das eine heilt man, das andere legt man lahm....

Sobald ich die Stelle gefunden habe, werde ich sie beheben und fortfahren.

Ich stand auch vor diesem Problem und habe es auf diese Weise gelöst:

class CCanvas_my:public CCanvas
  {
public:
   bool              Resize(const int width,const int height);
  };

bool CCanvas_my::Resize(const int width,const int height)
  {
   if(m_rcname!=NULL && width>0 && height>0)
      if(ArrayResize(m_pixels,width*height)>0)
        {
         m_width =width;
         m_height=height;
        }
   return true;
  }

Ersetzen der Standardfunktion zur Größenänderung der Leinwand. Wenn in Ihrem Code alles in Ordnung ist, gibt es keine unnötigen Redraws.

Ich habe eine solche Ebene der grafischen Schnittstelle, 10 CCanvas-Objekte (Erben) werden verwendet:


 
Aliaksandr Hryshyn #:

Ich bin auch auf dieses Problem gestoßen und habe es auf diese Weise gelöst:

Ersetzen der Standardfunktion zur Größenänderung der Leinwand. Wenn alles in Ihrem Code in Ordnung ist, wird es keine unnötigen Redraws sein.

Ich habe eine solche Ebene der grafischen Schnittstelle, 10 CCanvas Objekte (Erben) verwendet werden:


Danke! Mein Problem ist nicht mit der Größenänderung. Es ist ein Fehler in meinen Methoden.