No sé si te estoy entendiendo bien, pero un proceso largo en el OnShow muchas veces ocasiona que el formulario no termine de mostrarse completamente haste que no termine dicho proceso.
En esos caso lo que he hecho es diferir el proceso hasta que el formulario se haya mostrado por completo y para ello desde el OnShow hago un Post de un mensaje privado cuyo manejador es el que ejecuta el proceso. Puedes ver detalles de esto en este mensaje
http://www.clubdelphi.com/foros/show...59&postcount=6
// Saludos