Bueno Martins,tu idea me ha sido muy valida y he conseguido solucionarlo gracias a ti, de esta manera ya me da
igual que haya 50 componentes TQrRichText ó 200. Paso el codigo de como lo he dejado al final por si le sirve a alguien
de ayuda, solo aclarar que en el Qreport ha asignado a cada TQrRichText un 'Tag' para llevar un orden.
Código Delphi
[-]
begin
fdisenohorario:=tfdisenohorario.Create(self);
for i:=0 to fdisenohorario.ComponentCount-1 do
begin
if (fdisenohorario.Components[i] is TQrRichtext) then
begin
orden:=(fdisenohorario.Components[i].Tag);
memo:='celda'+IntTostr(orden);
basededatos.ado_uno.SQL.Clear;
basededatos.ado_uno.SQL.Add('SELECT * FROM GRUPOHORARIO WHERE C_PROFESOR="'+profe+'" AND CELDA="'+memo+'";');
basededatos.ado_uno.Active:=true;
basededatos.ADO_uno.First;
While not basededatos.ado_uno.Eof do
begin
(fdisenohorario.Components[i] as TQrRichText).Lines.Add(' '+basededatos.ado_uno.FieldByName('ALUMNO').AsString);
basededatos.ado_uno.Next;
end; end; end;
fdisenohorario.e_nombreprofesor.Lines.Add(e_nombreprofesor.Text);
fdisenohorario.QuickRep1.Preview;
end;
Al final no he necesitado para nada la variable 'ncelda' que tantos problemas me daba.
De nuevo muchas gracias a todos por se tan atentos.