Obviamente no soy Edosn
pero ...
-¿Porque estas heredando de TComponent?
-¿Porque al crear el objeto le pones (nil)?
Como no soy Edosn no se por qué lo hace (aparte de por copiar el ejemplo) pero Usar TComponent (o cualquier otra clase existente, en realidad) permite mostrarlo de un modo un poco más realista. Y dado que el constructor de TComponent está declarado como:
constructor TComponent.Create(AOwner: TComponent); virtual;
necesita que le pases un parámetro que, como mínimo, puede ser
Nil, significando "Ninguno"
-Y que utilidad tiene el crear una referencia de clase,no acabo de ver el uso de esto.
Una referencia a una clase es necesaria cuando necesitas hacer operaciones que afectan a la clase en sí misma, como crear una instancia, pero no sabes qué clase te van a pasar, como pasa (aunque no está muy claro, la verdad sea dicha) en el ejemplo al que enlazaste, o para llamar a constructores virtuales.
La verdad es que cómo, cuando y por qué usar referencias de clases es un concepto bastante avanzado y poco usado en programas normales. Si estás empezando, yo que tú memorizaría que existe y volvería a él más adelante