Self es una variable implicita, que funciona solamente en el contexto de un objeto, ya que contiene una referencia a si mismo (self). Es decir, a la instancia del objeto dentro del cual se hace la llamada al método en tiempo de ejecución.
De tal forma, si tenes una clase TForm1, utilizar self en uno de sus métodos te permitirá acceder a los métodos, propiedades y atributos de la instancia de TForm1 sobre la que se este actuando en ese momento.
En cambio, si lo utilizas dentro de la clase TMiClase, Self es una variable de tipo TMiClase.
En tu caso particular, podes agregar un parámetro al procedimiento, que traiga el owner del formulario, o por definicion crearlos con el objeto application como owner o por ultimo, sin owner.
Algo como
Código:
With FormClass.Create(Application) do
o
With FormClass.Create(nil) do
Espero haberme explicado lo suficiente.
Hasta luego.
