| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
loncio Cdt

Registrado: 04 Feb 2005Mensajes: 13
|
Publicado: Mie 25 May, 2005 11:39 am Asunto: Bloqueo de aplicacion mientras carga un TreeView |
|
|
Hola
En una pequeña aplicacion tengo puesto un Treeview, el programa consiste en leer un archivo de texto, y de cada linea poner los datos en un TTreeNode. El problema es que mientras los esta representando en el arbol la aplicacion queda bloqueada. Para eso intento poner un pequeño formulario que me indique la linea que en ese momento esta poniendo en el nodo.
El problema es que en el nuevo formulario solo se ve el Caption de la ventana y cualquier otra cosa que meta dentro, como una simple label, nada de anda. Probe deshabilitando la ventana principal y mostrar ese form mientras representa los nodos, para luego volverla a habilitar y sigo con el mismo problema. Lo unico que puedo hacer es poner ese proceso ("cargando linea 1, 2, 3, ...) en el caption de dicho form.
Quisiera saber si esto es normal, o bien puede tener solucion.
Gracias de antemano, un saludo!!! |
|
| Volver arriba |
|
 |
nuno Cmdr

Registrado: 10 Feb 2003Mensajes: 143Ubicación: Córdoba - Argentina
|
Publicado: Jue 26 May, 2005 5:35 pm Asunto: |
|
|
Si, ese comportamiento es normal, lo que puedes hacer es ocultar el formulario mientras lees el archivo (poniendo un relog de arena por ejemplo)
o hacer un hilo y cargarlo desde el hilo, el cual te permite manejar la prioridad, con esto no se te colgaria el programa mientras levanta los datos del archivo. _________________ Siempre hay que tratar de ser el mejor, pero nunca creerse el mejor (Juan Manuel Fangio) |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Jue 26 May, 2005 7:21 pm Asunto: |
|
|
Para evitar este comportamiento "normal" tienes que agregar dentro de tu bucle cuando cargas los datos la instrucción ProcessMessages.
El resultado es que podras ver lo que has estado intentato hacer.
Ejemplo:
| Código: |
for ( int i = 0; i < 100; i++ )
{
..... cargando treeview
Application->ProcessMessages();
}
|
Checate la ayuda para mas información.
Pruebalo y nos cuentas.
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
loncio Cdt

Registrado: 04 Feb 2005Mensajes: 13
|
Publicado: Jue 26 May, 2005 10:22 pm Asunto: |
|
|
Gracias a los dos. Me habeis servido de ayuda. Es increible lo que puede hacer una sola linea....
Un saludo!!!! |
|
| Volver arriba |
|
 |
|