FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
acerca del componente TShellTreeView
Hola a todos los miembros de este foro, mi duda es la siguiente, bueno primero que todo utilizo el componente TShellTreeView para poder accesar a recursos de red, ahora aqui la duda, cuando quiero accesar a un recurso de red hay veces que se demora demasiado como si se hubiera colgado, como puedo hacer para que el usuario pueda seguir trabajando sin que se congele la aplicación, he utilizado application.processmessages.
¿Que puedo hacer?. Saludos, y gracias de antemano |
#2
|
|||
|
|||
Cita:
|
#3
|
||||
|
||||
Ese es un tema delicado y te tengo malas noticias . Estuve echando un vistazo al código de la VCL de ese control, especificamente la función "PopulateNode" que busca dentro de las carpetas su contenido. Adentro de esa función se hace una llamada a una función de una librería del sistema operativo para obtener los elementos dentro de una carpeta (en este caso recursos de red). No veo manera de darle prioridad a otros eventos de la aplicación mientras se está esperando que lleguen los datos de esa función, es un problema que pasa tambien a veces con el Explorador de Windows que se "congela" al acceder a alguna carpeta de red (En Windows XP creo que estás más optimizado).
En conclusión, creo que lo único que podrías hacer sería listar los recursos de red con alguna función hecha por tí y optimizada con Application.ProcessMessages(), y no usar el componente TShellTreeView si quieres resolver ese asunto. Puedes buscar una función que te liste recursos de red en este foro o preguntar a ver quien sabe alguna. Otra opción que se me ocurrio a última hora es hacer alguna aplicación multihilos (Threads), donde un hilo se encargue de actualizar los nodos del TShellTreeView y otro hilo se encarga de responder a otros eventos de la aplicación pero hasta ahi no llegan mis conocimientos "delphi compotica", a ver si alguno de los expertos de este foro tiene alguna idea.
__________________
"En el siglo de la estupidez todas las casas comienzan por la fachada" (Fuckowsky) Planeta Insólito, La Pluma Inspirada |
#4
|
||||
|
||||
Hola:
¿ Qué tal si pruebas con los componentes TurboPower ShellShock?, son realmente buenos y mejor implementados que los que trae el propio delphi, de hecho esos componentes siempres lo dejaron para el final, es decir no están optimizados y recuerdo haber encontrados algunos errores (delphi 6), por esta razón llegué a probar los componentes mencionados mas arriba y efectivamente están bastante buenos. Este es el enlace Hasta Luego -
__________________
No todo es como parece ser... |
#5
|
|||
|
|||
Cita:
Vi una opción expandinterval y supuse que ese podría poner un tiempo limite pero no es así. O tal vez este manejando mal el componente. No he puesto codigo sólo he puesto el componente ejecute una aplicacion de ejemplo, pero se congela cuando se quiere accesar a un grupo de trabajo, y como comente antes quisiera poder cancelar o cerrar la ventana cuando el usuario lo desee. ¡Alguna recomendación que podría hacer? Saludos y gracias de antemano. |
#6
|
||||
|
||||
Hola:
Si mal no recuerdo, esos componentes tienen una buena documentación, quizás allí podrías encontrar algo que te sirva, debo decir que esos componentes no lo usé con el mismo proposito que llevas tú. Me gustaría ayudarte, pero en casa no dispongo de una red (por lo menos de dos PC ), ahora si haces lo mismo pero de windows ¿también se congela?, quizás sea otro el problema. Veamos si alguien tiene mas conocimiento sobre esto y así podemos aprender todos Hasta Luego y suerte (aunque luego de leer un debate en este mismo foro sobre el significado de esta palabra en programación, no sé si usarla en este contexto, jejee )
__________________
No todo es como parece ser... |
#7
|
|||
|
|||
Cita:
Lo que hice fue utilizar el componente TShellTreeView, pero metiendo en un hilo el metodo expand, para llamarlo desde ahí y poder controlarlo, luego lo probé y todo chevere salio bien. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Creando componente visual | piccolo2101 | Varios | 4 | 25-01-2006 15:13:45 |
acerca del componente DBDateEdit | eperezd | SQL | 1 | 13-05-2005 04:39:29 |
Componente para soporte Multilenguage en Delphi 2005 | Holderhek | OOP | 2 | 16-03-2005 16:46:00 |
Una clase como propiedad de un componente? | setry2 | OOP | 3 | 30-12-2003 22:30:58 |
Ayuda con nuevo componente | mosorio | OOP | 2 | 14-07-2003 14:33:09 |
|