Hi!
Hab ein kleines Progi für dich geschrieben. Du mußt der Funktion nur die Listbox übergeben. Druckt auch mehrere Zeilen, aber vorsicht mit dem Rechten Rand! Es muß auf die Seite passen!
Delphi-Quellcode:
[
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Printers;
type
TForm1 =
class(TForm)
ListBox1: TListBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
Procedure PrintListBox(ListBox: TListBox);
public
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
PrintListBox(ListBox1);
end;
Procedure TForm1.PrintListBox(ListBox: TListBox);
Var
I,LinesPerPage,Count,FontHeight:Cardinal;
Begin
With Printer
do Begin
Canvas.Font.Assign(ListBox.Font);
FontHeight:=Canvas.TextHeight('
X');
LinesPerPage:=PageHeight
div FontHeight;
BeginDoc;
Count:=0;
For I:=0
to ListBox.Items.Count-1
do Begin
Canvas.TextOut(0,Count*FontHeight,ListBox.Items[I]);
Inc(Count);
If Count=LinesPerPage
then Begin
Count:=0;
NewPage;
End;
End;
EndDoc;
End;
End;
end.
Um es größer zu drucken mußt du Font.Size der Listbox vergrößern.
Ich hab damit grad gedruckt, es funkioniert!
Grüße von TOC!