FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
El código puede escribirse de muchas formas pero lo que lo retrasa el la línea Memo1.Lines.Add(
Si hacemos que el memo se escriba por mensajes, cualquiera de las formas se ejecuta en menos de 10 milisegundos:
Los bucles terminarán en escasos milisegundos aunque el Memo tardará en llenarse de forma ordenada lo que tarde Windows en tramitar la cola de mensajes. Saludos. |
#2
|
||||
|
||||
Se puede almacenar en memoria y luego, al terminar, asignarlo al memo. Así será incluso más rápido.
|
#3
|
||||
|
||||
Hola.
Si, el método Add es muy lento; yo he obtenido buenos resultados operando sobre una variable de tipo string y asignándola luego a la propiedad Text. Resultados para 1000 números usando la propuesta de roman en todos los casos: Código:
Concatenando : 203 µs. Mensaje : 261 µs. Método Add : 3320579 µs. Saludos Edito: Mas o menos como lo que dijo Casimiro mientras componía este
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 23-04-2017 a las 22:32:48. |
#4
|
||||
|
||||
Cierto, el manejo de cadenas de texto suele ser siempre lo más lento de todo.
|
#5
|
||||
|
||||
Bueno, pero antes de agregar líneas por PostMessage o concatenar y pegar, ¿han intentado un BeginUpdate - EndUpdate?
LineComment Saludos |
#6
|
||||
|
||||
Ahhh caramba, ¿VCL también tiene estos métodos?... porque los he usado es en FMX.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#7
|
||||
|
||||
Sí, claro. Ahí han estado por siempre
LineComment Saludos |
#8
|
||||
|
||||
Roman, definitivamente, sos el maestro (bueno, eso siempre se ha sabido), acabo de probarlo y funciona a las mil maravillas... no encontraba el método porque estaba buscando en el control, como si se tratara de FMX... sin embargo sí que ha funcionado a las mil maravillas al utilizarlo en el TStrings que es a donde ha pertenecido.
Gracias hombre.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#9
|
||||
|
||||
Hola roman.
Cita:
Código:
Concatenando : 203 µs. Mensaje : 261 µs. Begin/Update : 858024 µs. Método Add : 3320579 µs.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#10
|
||||
|
||||
Bueno, a mí el BeginUpdate/EndUpdate me ha arrojado los mismo números que me arroja el uso de TParallel. Que curioso todo.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#11
|
||||
|
||||
¿Tenéis un ordenador compartido?
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Copiar números impares de un listbox a otro | ale4132 | Varios | 5 | 17-12-2012 19:33:10 |
Consulta Desde->Hasta | Luis M. | Firebird e Interbase | 6 | 30-07-2008 19:40:34 |
1000 Mil M 0011 1110 1000 3e8 | sakuragi | La Taberna | 29 | 05-03-2008 18:28:56 |
Poner puntos a los números mayores de 999 y hasta 1M | Pedro-Juan | Trucos | 2 | 26-12-2007 19:13:08 |
Factorial hasta 1000 | Cheswar | Varios | 29 | 21-09-2007 20:43:27 |
|