Gracias Fredo por la respuesta, aunque ese no era el motivo.
Gracias sobretodo a Neftali, tenías toda la razón. No sé como se me olvidó liberar un objeto ya que había puesto:
Código Delphi
[-]initialization
dmIconos := TdmIconos.Create(Application);
Pero claro no liberaba nunca el objeto...
Aunque en teoría no debería de dar ningún problema, no? Porque al hacer un Create este asigna una nueva referencia.
De todas maneras he dejado el código así
Código Delphi
[-]initialization
dmIconos := TdmIconos.Create(Application);
finalization
dmIconos.Free;
De esta forma ya no me da ningún Access Violation al compilar.
Pero sigo teniendo un problema. Tengo dos paquetes. Uno de ellos solo es código fuente con clases y también formularios. En teoría, ya que no son componentes, puedo poner que sea un paquete de runtime, verdad??? o debido a los forms necesita que sea también en tiempo de diseño?
Porque si dejo el primer paquete como Runtime, me permite pulsar "Install" y al pulsarlo da un error de la rtl70.bpl y se cierra Delphi. Lo he solucionado poniendo en Runtime y Design, aunque no es la solución, no?