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.