Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Bloqueo de aplicacion mientras carga un TreeView

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Bloqueo de aplicacion mientras carga un TreeView Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias a los dos. Me habeis servido de ayuda. Es increible lo que puede hacer una sola linea.... Very Happy

Un saludo!!!!
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.