Pues a mi las dos construcciones que pone roman en el post numero 11 me parecen correctas. Yo escogeria siempre la primera, sobre todo porque estoy mas acostumbrado a hacerlo así, pero ambas son tecnicamente correctas.
Solo aclarar un par de cosas:
- El metodo create de un objeto puede provocar una excepcion (Por ejemplo un TFileStream con un nombre de archivo incorrecto)
- Si el metodo Create provoca una excepcion devuleve nil y el metodo destroy del objeto es llamado automaticamente.
En resumen, si me dan a escoger, yo escojo la primera forma. Pero si tengo que crear 20 objetos juntos no dudaria en usar la segunda forma que expone roman.