Ver Mensaje Individual
  #10  
Antiguo 21-03-2012
MARIA_MAR MARIA_MAR is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 21
Reputación: 0
MARIA_MAR Va por buen camino
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; // del while
  end; // del if
  end; // del for

  // Imprimo el previo
  fdisenohorario.e_nombreprofesor.Lines.Add(e_nombreprofesor.Text);
  fdisenohorario.QuickRep1.Preview;

 end; // del if

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.
Responder Con Cita