Discusión sobre el artículo "Interfaces gráficas X: Algoritmo del traslado de palabras en el campo de edición multilínea (build 12)" - página 2

 
El ejemplo descargado del archivo compilado, pero al cargarlo en el gráfico, el log muestra la entrada " 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) ". y después de cargar no reacciona a nada de nada e incluso cerrarlo es imposible, he tenido que borrar el gráfico. Tengo MT5 de la última build 1580 del 10 de abril.
 
Alexander:
El ejemplo descargado del archivo compilado, pero al cargarlo en el gráfico, el log muestra la entrada " 2017.04.15 12:58:14.715 TestLibrary01 (USDRUB_TOM,D1) invalid pointer access in 'WndContainer.mqh' (430,38) ". y después de cargar no reacciona a nada de nada e incluso cerrarlo es imposible, he tenido que borrar el gráfico. Tengo MT5 última build 1580 del 10 de abril.

Lamentablemente aún no he podido reproducir tu problema. No tengo ningún problema cuando pruebo este Asesor Experto (la misma build del terminal). No es la primera vez que me encuentro con el hecho de que diferentes usuarios pueden obtener resultados diferentes al probar la misma aplicación MQL. En general, voy a tener en cuenta. Pondré una comprobación adicional. Gracias por el mensaje.

Cuando se produce un error de este tipo, el programa se elimina del gráfico, y todos los objetos gráficos creados en él permanecen en el gráfico, por lo que debe eliminarlos manualmente mediante Ctrl + B.

 
Lo más extraño es que el programa no se desinstala, probablemente porque ni siquiera aparece el icono de EA en la esquina superior derecha, y no hay ninguno en la lista de objetos.
 
Alexander:
Lo más extraño es que el programa no está desinstalado, probablemente porque ni siquiera aparece el icono del EA en la esquina superior derecha, y no hay ninguno en la lista de objetos.
Si no hay icono de Asesor Experto, significa que el programa ya ha sido desinstalado. Haga clic en el botón "Todos" de la ventana"Lista de objetos" (Ctrl + B).
 
Gracias Anatoly!
¡Ejemplo muy instructivo!
Especialmente agradable que funcione también en MT4.
Me quito el sombrero ante ti una vez más.
Tu trabajo persistente y meticuloso es admirable.
¡Mucha suerte y buen humor!
Felices fiestas.
 
Mikhail Dovbakh:
...
Es especialmente agradable que funciona en MT4 también.
...

Cuidado con MT4, ya que no pruebo la librería en este terminal desde hace tiempo.

 

Anatoly, ¿hay algún error tipográfico?

   for(uint s=1; s<symbols_total; s++)
     {
      //--- Cuenta si (2) дошли до конца строки или (2)  нашли пробел (конец слова)
      if(s+1==symbols_total || (m_lines[l].m_symbol[s]!=SPACE && m_lines[l].m_symbol[s-1]==SPACE))
         words_counter++;
     }
//--- Devuelve el recuento de palabras
   return(words_counter);

Si no es así, por favor, explique la lógica de la misma

 
Rashid Umarov:

Anatoly, ¿hay algún error tipográfico?

Si no es así, explique la lógica, por favor

Error tipográfico. (1) (2)

La lógica es sencilla. Contamos las palabras en la línea actual. Una palabra aquí es una secuencia continua de caracteres (sin espacio).

  1. Si hemos llegado al final de la cadena, aumentamos el contador de palabras.
  2. Si el carácter actual no es un espacio, sino el espacio anterior, entonces incrementamos el contador de palabras.
 
Si añado nuevas líneas programáticamente, entonces llamo a UpdateTextBox(), pero las barras de desplazamiento y el wordwrapping no se aplican. Necesito pulsar alguna tecla. ¿Cómo activar esto sin pulsar ninguna tecla?