Hallo,
warum hast du die Druckroutine "hardcodiert". Mach es doch mit Quickreport. Man braucht für Quickreport nicht unbedingt eine Datenbank. Meine Fehlerreports drucke ich auch mit Quickreport. Dies hat einige Vorteile. Quickreport kümmert sich selbst um Papierformat, Seitengröße etc. Und ich kann die Position der Ausgabezeile recht einfach auf einem Report platzieren.
Entscheidend ist dass das onNeeddata-Ereignis überschrieben wird. Solange moredata=true ist macht Quickreport weiter, sobald moredata=false ist wird die Ausgabe beendet. Mit Quickreport könnte dein Source dann etwa so aussehen:
Code:
var i : integer;
procedure TQRDrucken.QRDruckenBeforePrint(Sender: TQuickRep;
var PrintReport: Boolean);
begin
i:=0;
end;
procedure TQRDrucken.QRLabel1Print(sender: TObject; var Value: String);
begin
value:=Form1.ListBox1.Items[i];
end;
procedure TQRDrucken.QRDruckenNeedData(Sender: TObject;
var MoreData: Boolean);
begin
moreData:=true;
if i>Form1.ListBox1.Items.Count then
begin
moredata:=false;
end;
inc(i);
end;
Probiers mal aus.
Gruß
Horst