Hola: Ahora mas o menos interprete lo que quieres hacer... (Puede que no)
El error se da porque declaraste la variable string ncelda y despues en:
Código Delphi
[-]finforme.ncelda.Lines.Add(basededatos.ado_uno.FieldByName('ALUMNO').AsString);
la tratas como componente. Lo que debes hacer es verificar que antes de asignar el valor si el componente de llegada es un TQRRichText. Lo que yo suelo hacer es lo siguiente y como para que te des una idea:
Código Delphi
[-] for I := 0 To ComponentCount -1 do
BEgin
if (Components[i] Is TEdit) then
(Components[i] as TEdit).Text := '';
End;
en este caso lo que hace es de acuerdo a todos los componentes que hay dentro del formulario ir verificando si alguno es del tipo TEdit (en este ejemplo) y en el caso de que así sea aplica el correspondiente valor...
Para tu caso:
Código Delphi
[-] for I := 0 To FInforme.ComponentCount -1 do
BEgin
if (FInforme.Components[i] Is TQrRichText) then
(FInforme.Components[i] as TQrRichText).Lines.Add := Valor;
End;
Espero que hayas entendido y que yo tambien haya interpretado
Saludos y cualquier cosa acá estamos.