Yo creo que nos complicamos mucho con los apuntadores famosos. Estos vienen diría yo de la prehistoria de Delphi (Pascal) en donde en mas de una ocasión habia que usarlos. A todos nos tocó seguramente lo de las infames listas ligadas o doblemente ligadas que es el ejemplo clásico de como usarlos.
En la actualidad con Delphi pienso que no es necesario utilizarlos directamente dado que han quedado "encapsulados" por así decirlo en la forma de variables de objeto que por lo que no son otra cosa que apuntadores disfrazados de variables simples. De hecho al hacer un simple
Código Delphi
[-]
MyVentana := TForm.Create(nil);
En realidad estamos asignando memoria suficiente para que quepa una estructura TForm y almacenamos la direccion de esa memoria en un puntero que llamaremos MyVentana (aunque para nuestro código MyVentana no es un puntero sino un "objeto").
La abstracción de la implementacion de OOP en Delphi se encaraga de tapar los problemas comunes de usar "^" y todo lo que ya conocemos.
La solución simple es no usar punteros directamente, crear objetos simples que contengan lo que queramos y utilizarlos como lo hariamos con cualquier otro objeto y dejar que Delphi haga el trabajo por nosotros.
Y como dice Roman, me parece que meterse con punteros sin tener mucha experiencia es meterse en camisa de once varas. Sobre todo porque difícilmente requerirás usarlo. Ahora que estoy haciendo otras cosas en Java noté que ahi no existen los punteros como tales aunque en realidad se manejan como objetos.