Einzelnen Beitrag anzeigen

Benutzerbild von TOC
TOC

Registriert seit: 5. Jan 2005
Ort: Trier
248 Beiträge
 
Delphi 7 Personal
 
#11

Re: Inhalt einer Listbox ausdrucken ?

  Alt 7. Jan 2005, 10:00
Hi!

Kleiner Fehler in meiner Source!
Man sollte abfragen ob die ListBox LEER ist! Sonst macht der Drucker ein FormFeed und druckt ein leeres Blatt aus. Is mir nicht aufgefallen weil in meinem Beispiel die ListBox ja nit grad leer war, HiHi!

Wir müßen nur eine Zeile einfügen, direkt am Anfang:

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
  // Neue Zeile!
  If Listbox.Items.Count=0 then Exit;
  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.
Man könnte noch ein PrinterDialog einführen mit dem der Benutzer zwischen Hoch- und Quer-Format wählen kann.

Freut mich, wenn ich Dir helfen konnte!

Grüße von TOC!
Angehängte Dateien
Dateityp: zip printlistbox_185.zip (106,9 KB, 9x aufgerufen)
Lars Uwe Hohmann
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
  Mit Zitat antworten Zitat