Herzlich willkommen in der Delphi-PRAXiS, rollstuhlfahrer.
Wie du in dem verlinkten Quelltext sehen kannst, werden mit dieser Ausgabetechnik einzelne Zeilen ausgegeben - und zwar an berechneten Stellen. An die Stelle der Schleife über die Datenbank-Tabelle tritt bei dir eine Schleife über die Zeilen deines Memos:
Delphi-Quellcode:
procedure TFormDatei.ButtonDruckClick(Sender: TObject);
var
Hoehe, ZlDiff, Zl, SpDiff, Sp, ZlNr: WORD;
begin
IF PrintDialog.Execute THEN
BEGIN
Printer.BeginDoc;
{ Wie groß ist die Seite? }
Hoehe := Printer.PageHeight;
ZlDiff := Hoehe DIV 65;
WITH Printer.Canvas DO
BEGIN
SpDiff := TextWidth('n'); {Wie breit ist ca. ein Buchstabe?}
Zl := 3 * ZlDiff;
Sp := 8 * SpDiff;
FOR ZlNr := 0 to Pred(Memo.Lines.Count) DO
BEGIN
TextOut(Sp, Zl, Memo.Lines[ZlNr]);
INC(Zl, ZlDiff);
IF Zl > Hoehe - 5 * ZlDiff THEN
BEGIN
Printer.NewPage;
Zl := 3 * ZlDiff;
END;
END; {FOR}
END; { WITH }
Printer.EndDoc;
END;
end; { ButtonDruckClick }
Getippt und nicht getestet.
Freundliche Grüße vom marabu