Hola Alej.Villa.
Al igual que te han sugerido yo descartaría los QRMemos.
Creo que en tu caso lo que te conviene es usar un TQRBand con su propiedad BandType = rbTitle y un TQRSubDetail asociado al query mediante su propiedad DataSet.
En el TQRBand ponés la cabecera del listado y en el TQRSubDetail los campos que deseas encolumnar.
Te adjunto una imágen por si te resulta más entendible:
De ese modo sólo debés abrir dm.qLista para generar el reporte, es decir que tu código podría quedar más o menos así:
Código Delphi
[-]
if Apellidos.Checked then
begin
dm.qLista.Close;
dm.qLista.SQL.Clear;
dm.qLista.SQL.Add('Select * FROM Temporal');
dm.qLista.SQL.Add('Order by nombres ASC');
dm.qLista.Open;
end;
Y
Código Delphi
[-]
if Linea.Checked then
begin
dm.qLista.Close;
dm.qLista.SQL.Clear;
dm.qLista.SQL.Add('Select * FROM Temporal');
dm.qLista.SQL.Add('Order by codigo_linea ASC');
dm.qLista.Open;
end;
Saludos.