Hola,
Pareciera que la instrucción:
Código Delphi
[-]
boton1 := boton1.create(nil);
Debería ser algo así como:
Código Delphi
[-]
boton1 := TButton.create(nil);
Y, por otro lado, sabe que si no asignas dueño al botón, serás tú el encargado de destruir el botón, pero, si haces algo como:
Código Delphi
[-]
boton1 := TButton.create(self);
Estarás dejando esa "carga" al propio componente "MiClase".