Drucken geht nich! *grummel*

Ahoi. Ich möchte einfach nur eine ganz einfache Aufgabe bewältigen, eine Lisdtbox oder ein memo ausdrucken, aber irgendetwas hakt da. Beispielsweise folgendes Programmmm:

procedure PrintStrings(Strings: TStrings);
var
Prn: TextFile;
i: word;
begin
AssignPrn(Prn);
try
Rewrite(Prn);
try
for i := 0 to Strings.Count - 1 do
writeln(Prn, Strings.Strings[i]);
finally
CloseFile(Prn);
end;
except
on EInOutError do
MessageDlg(‚Error Printing text.‘, mtError, [mbOk], 0);
end;
end;

Aufgerufen wird die Procedur z.B. mit PrintString(listbox1.items), ausserdem steht in der USES-Liste noch printers 'drin.

… also eigentlich alles richtig - meint man. Das Problem stellt sich folgendermaßen dar: Das Program läuft ordentlich durch, wenn ich aber die Procedur aufrufe, wird der Drucker-Spool kurz geöffnet aber sofort wieder geschlossen. Der Drucker-Treiber tritt gar nicht in Aktion. AUch fertige Beispielprogramme machen ähnlichen Unfug, trotzdem mein Drucker richtig eingerichtet ist und ich z.B. aus Word vernünftig drucken kann.

Wodran kann’s liegen?

Danke, Jesn.

Hallo Jens,

versuch’s Mal damit. Bei mir kommt da ein Blatt raus …

procedure TForm1.Button3Click(Sender: TObject);
var
MyFile: TextFile;
begin
AssignPrn(MyFile);
Rewrite(MyFile);
Writeln(MyFile, ‚Dieser Text wird gedruckt.‘);
System.CloseFile(MyFile);
end;

Beachte: System.CloseFile(…)

Gruss
Markus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

… nein … leider auch nix. Wie eh und jeh: der drucker-dialog wird für Sekunden gestartet, der Treiber aber nicht und das war’s …

Aber Danke für Deine Bemühungen!

Gruß, Jesn.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Halle Jesn,

Hast du mehrere Drucker installiert?
Was hast du für einen Drucker?
Standarddrucker: Printer.PrinterIndex := -1;
Du schreibst, dass der Druckerspooler kurz aktiviert wird. Vielleicht musst du für deinen Drucker einen FormFeed Befehl absetzen. Sowas wie: WriteLn(Prn, Chr(12));
Da du das Printerobjekt (Printers) ja eingebunden hast, versuch es Mal mit Printer.EndDoc oder Printer.Newpage , damit deine Seite auch rauskommt, wenn das mit dem FF nicht funktioniert.

Gruss
Markus

… nein … leider auch nix. Wie eh und jeh: der
drucker-dialog wird für Sekunden gestartet, der Treiber aber
nicht und das war’s …

Aber Danke für Deine Bemühungen!

Gruß, Jesn.

Ahoi. Ich möchte einfach nur eine ganz einfache Aufgabe
bewältigen, eine Lisdtbox oder ein memo ausdrucken, aber

Drucker-Spool kurz geöffnet aber sofort wieder geschlossen.
Der Drucker-Treiber tritt gar nicht in Aktion. AUch fertige
Beispielprogramme machen ähnlichen Unfug, trotzdem mein
Drucker richtig eingerichtet ist und ich z.B. aus Word
vernünftig drucken kann.

Wodran kann’s liegen?

Danke, Jesn.

Hallo alle,

probiert es mal hiermit:

procedure TForm1.Button1Click(Sender: TObject);
var
File: System.File;
begin
AssignPrn(File);
Rewrite(File);
Writeln(File, ‚Druck mich!‘);
System.CloseFile(File);
end;

Beachtet dabei die Variabelndeklaration!

Gruß Thomas

Keine Ahnung, warum das jetzt so nicht geht. Ich versuche
erst gar nicht lang, dran rumzubasteln, wenn ich bei
(z.b.) www.torry.net eine Komponente finde, die das Gleiche macht. Ich muss ja nicht gleich die Komponente installieren, aber meistens ist der Sorucecode mit dabei und da steht halt drin, wies geht. Trickreich, gelle?

mfg

Mark

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]