Occhio, che ti va bene, perché stai stampando solo poche righe.
Se facessi il ciclo che invece di arrivare fino a 10, arriva fino a 100, con quel codice probabilmente perderesti tutte le righe che non ci stanno sul foglio.
In poche parole, dovresti gestire il salto pagina.
Questa, ad esempio, è una procedura che avevo fatto anni fa', per stampare una TStringList, puoi prendere spunto, per adattare la tua
procedure StampaStringList(MyList:TStringList; Titolo:String);
var RigaInStampa, RigaAttuale, Pagina, AltezzaChr, PosY, RigheXPag, IdxLista:Integer;
begin
//Imposto l'orientamento della pagina
case OrientamentoPagina of
opAutomatico: Printer.Orientation:=DeterminaOrientamento(MyList);
opVerticale: Printer.Orientation:=poPortrait;
opOrizzontale:Printer.Orientation:=poLandscape;
end;
Printer.BeginDoc;
Printer.Title:=Titolo;
Printer.Canvas.Font.Name:='Courier New';
Printer.Canvas.Font.Size:=8;
AltezzaChr:=Printer.Canvas.TextHeight('Gg') + 2;
RigheXPag:=(Printer.PageHeight - 50) div AltezzaChr;
Pagina:=0;
RigaAttuale:=0;
for IdxLista:=0 to MyList.Count - 1 do begin
RigaAttuale:=RigaAttuale + 1;
RigaInStampa:=RigaAttuale - (Pagina * RigheXPag);
PosY:=RigaInStampa * AltezzaChr;
Printer.Canvas.TextOut(25, PosY, MyList[IdxLista]);
//Salto pagina
if (RigaInStampa = RigheXPag) and (IdxLista <> (MyList.Count - 1)) then begin
Printer.NewPage;
Pagina:=Pagina + 1;
end;
end;
Printer.EndDoc;
end;
Ciao, Mario