Por lo que entiendo de tu mail, haces algo como esto:
Código Delphi
[-]
Memo.Lines.Clear;
while (not Recibos.EOF) do
begin
while (not LineasRecibos.EOF) do
begin
Memo.Lines.Add(LineasRecibos.Registros);
LineasRecibos.Next;
end;
Recibos.Next;
end;
Imprimir(Memo);
Si es así, podrías romper la impresión, imprimiendo cada recibo y no todos los recibos en un mismo memo.
Puede ser que Vista esté trabajando de más, tratando de manejar grandes cantidades de memoria. (comentas que además de generar el Memo, haces muchos querys a tablas en memoria)
La idea es la siguiente:
Código Delphi
[-]
while (not Recibos.EOF) do
begin
Memo.Lines.Clear;
while (not LineasRecibos.EOF) do
begin
Memo.Lines.Add(LineasRecibos.Registros);
LineasRecibos.Next;
end;
Imprimir(Memo);
Recibos.Next;
end;