Hallo. Ich habe ein bißchen in der Hilfe gestöbert, um eine listbox auszudrucken und bin dabei auf folgende Lösung gestoßen:
uses … printers;
procedure TForm1.Button1Click(Sender: TObject);
var
Line: Integer;
PrintText: TextFile; {Deklaration einer Dateivariablen}
begin
if PrintDialog1.Execute then
begin
AssignPrn(PrintText); {Zuweisung von PrintText an den Drucker}
Rewrite(PrintText); {Erzeugen und Öffnen der Ausgabedatei}
Printer.Canvas.Font := Memo1.Font;{Zuweisung der eingestellten Schriftart an die Leinwand}
for Line := 0 to Memo1.Lines.Count - 1 do
Writeln(PrintText, Memo1.Lines[Line]); {Schreiben des Inhalts von Memo1 in das Druckerobjekt}
CloseFile(PrintText); {Schließen der Druckervariablen}
end;
end;
Erstmal druckt der Code natürlich ein Memo aus, das ist mir klar. Außerdem brauchts noch den Printerdialog und einen Button.
Mein Problem ist jetzt: Das Programm macht nur FAST das, was ich will. Nach der bestätigung des Printer-Dialogs arbeitet der rechner kurz, die Anzeige des Druckertreibers erscheint für eine Sekunde und ist weg, ohne das was gedruckt worden wäre. Der Drucker funktioniert mit anderen Programmen einwandfrei.
Was mache ich falsch? danke und gruß, Jens.