Diskussion zum Artikel "Grafische Interfaces X: Algorithmus für den Zeilenumbruch im mehrzeiligen Textfeld (build 12)" - Seite 2

 

Alexander:
...

Können Sie mir in diesem Zusammenhang sagen, welche Änderungen an den vorherigen Beispielen vorgenommen werden sollten, damit sie funktionieren, oder wurde dies vielleicht bereits in einem Artikel beschrieben? Konkret möchte ich ein Panel auf der Grundlage des Beispiels aus dem Ordner "Artikel 7 TestLibrary05" erstellen. Ich danke Ihnen.

Laden Sie das Beispiel aus dem Archiv herunter. Es enthält Beispiele für fast alle Steuerelemente der Bibliothek in einem Panel.

Dateien:
 
Das heruntergeladene Beispiel aus dem Archiv wurde kompiliert, aber wenn ich es in den Chart lade, zeigt das Log den Eintrag " 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) ". und nach dem Laden reagiert er auf gar nichts mehr und auch schließen ist unmöglich, ich musste den Chart löschen. Ich habe MT5 der neuesten Build 1580 vom 10. April.
 
Alexander:
Das heruntergeladene Beispiel aus dem Archiv wurde kompiliert, aber wenn ich es in den Chart lade, zeigt das Log den Eintrag " 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) ". und nach dem Laden reagiert er auf gar nichts mehr und auch schließen ist unmöglich, ich musste den Chart löschen. Ich habe MT5 neueste Build 1580 vom 10. April.

Leider habe ich Ihr Problem noch nicht reproduzieren können. Ich habe keine Probleme, wenn ich diesen Expert Advisor teste (die gleiche Build des Terminals). Es ist nicht das erste Mal, dass ich feststelle, dass verschiedene Benutzer beim Testen der gleichen MQL-Anwendung unterschiedliche Ergebnisse erzielen können. Generell werde ich das im Auge behalten. Ich werde eine zusätzliche Prüfung durchführen. Vielen Dank für die Nachricht.

Wenn ein solcher Fehler auftritt, wird das Programm aus dem Diagramm gelöscht, und alle darin erstellten grafischen Objekte verbleiben im Diagramm, Sie sollten sie also manuell mit Strg + B löschen.

 
Das Merkwürdigste ist, dass das Programm nicht deinstalliert wird, wahrscheinlich weil nicht einmal das EA-Symbol in der oberen rechten Ecke erscheint und auch in der Liste der Objekte nichts zu finden ist.
 
Alexander:
Das Merkwürdigste ist, dass das Programm nicht deinstalliert wird, wahrscheinlich weil nicht einmal das EA-Symbol in der oberen rechten Ecke erscheint und auch in der Liste der Objekte keines zu finden ist.
Wenn es kein Expert Advisor-Symbol gibt, bedeutet dies, dass das Programm bereits deinstalliert wurde. Klicken Sie auf die Schaltfläche "Alle" im Fenster"Objektliste" (Strg + B).
 
Danke Anatoly!
Sehr lehrreiches Beispiel!
Besonders schön, dass es auch im MT4 funktioniert.
Ich ziehe wieder einmal den Hut vor Ihnen.
Ihre ausdauernde und akribische Arbeit ist bewundernswert.
Alles Gute und gute Laune!
Frohe Festtage.
 
Mikhail Dovbakh:
...
Besonders schön ist, dass es auch in MT4 funktioniert.
...

Vorsicht mit MT4, da ich die Bibliothek in diesem Terminal seit einiger Zeit gar nicht mehr teste.

 

Anatoly, gibt es hier einen Tippfehler?

   for(uint s=1; s<symbols_total; s++)
     {
      //--- Zählen wenn (2) дошли до конца строки или (2)  нашли пробел (конец слова)
      if(s+1==symbols_total || (m_lines[l].m_symbol[s]!=SPACE && m_lines[l].m_symbol[s-1]==SPACE))
         words_counter++;
     }
//--- Rückgabe der Wortzahl
   return(words_counter);

Wenn nicht, erklären Sie bitte die Logik dahinter

 
Rashid Umarov:

Anatoly, gibt es hier einen Tippfehler?

Wenn nicht, erklären Sie bitte die Logik

Tippfehler. (1) (2)

Die Logik ist einfach. Wir zählen die Wörter in der aktuellen Zeile. Ein Wort ist hier eine fortlaufende Folge von Zeichen (ohne Leerzeichen).

  1. Wenn wir das Ende der Zeichenkette erreicht haben, erhöhen wir den Wortzähler.
  2. Wenn das aktuelle Zeichen kein Leerzeichen ist, sondern das vorherige Leerzeichen, dann erhöhen wir den Wortzähler.
 
Wenn ich programmatisch neue Zeilen hinzufüge, rufe ich UpdateTextBox() auf, aber die Bildlaufleisten und der Wortumbruch werden nicht angewendet. Ich muss eine Taste drücken. Wie kann ich dies auslösen, ohne eine Taste zu drücken?