AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt einer Listbox ausdrucken ?

Ein Thema von Vader · begonnen am 6. Jan 2005 · letzter Beitrag vom 20. Jun 2016
Antwort Antwort
Seite 2 von 2     12   
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
Vader

Registriert seit: 6. Mai 2003
804 Beiträge
 
Delphi 6 Enterprise
 
#12

Re: Inhalt einer Listbox ausdrucken ?

  Alt 7. Jan 2005, 20:00
hallo,

danke nocheinmal für eure hilfe
mfg vader
  Mit Zitat antworten Zitat
Benutzerbild von Rainsnow
Rainsnow

Registriert seit: 15. Jun 2016
1 Beiträge
 
#13

AW: Inhalt einer Listbox ausdrucken ?

  Alt 20. Jun 2016, 07:49
Hallo ich hätte zu diesem Thema noch eine Frage.Ist es möglich das auf dem ausgedruckten Blatt als Überschrift immer das Wort "Rechnung" zu haben und die Listbox zentral unter der Überschrift zu haben.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.142 Beiträge
 
Delphi 12 Athens
 
#14

AW: Inhalt einer Listbox ausdrucken ?

  Alt 20. Jun 2016, 11:18
Da hier manuell auf dem Printer.Canvas rumgemalt wird, kannst du natürlich auch selber noch etwas drauf malen.
(Printer.Canvas.TextOut und das einmal am Anfang und vielleicht auch nochmal nach NewPage)
Und die Position des hier gemalten sollte sich durch einfügen eines Offset problemlos verschieben lassen den man auf alle Zeichen-/Textoperationen drauf rechnet.
LeftOffset := (Printer.PageWidth - BreiteDesGemalten) div 2
PS: Wenn du noch was drüber schreibst, dann nicht vergessen auch ein Offset von Oben zuzugeben. (oder einfach "Count" nicht bei 0 beginnen lassen)

Da z.B. in #11 nur Text gemalt wird, wär hier die "BreiteDesGemalten" somit der längste Text,
den man vorher mit einer Schleife und Canvas.TextWidth(ListBox.Items[I]) bestimmen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Jun 2016 um 11:26 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz