Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Inhalt eines Memos mit dem Printer-Objekt ausdrucken

  Alt 1. Aug 2007, 20:12
Herzlich willkommen in der Delphi-PRAXiS, rollstuhlfahrer.

Wie du in dem verlinkten Quelltext sehen kannst, werden mit dieser Ausgabetechnik einzelne Zeilen ausgegeben - und zwar an berechneten Stellen. An die Stelle der Schleife über die Datenbank-Tabelle tritt bei dir eine Schleife über die Zeilen deines Memos:

Delphi-Quellcode:
procedure TFormDatei.ButtonDruckClick(Sender: TObject);
var
  Hoehe, ZlDiff, Zl, SpDiff, Sp, ZlNr: WORD;
begin
  IF PrintDialog.Execute THEN
  BEGIN
    Printer.BeginDoc;
    { Wie groß ist die Seite? }
    Hoehe := Printer.PageHeight;
    ZlDiff := Hoehe DIV 65;
    WITH Printer.Canvas DO
    BEGIN
      SpDiff := TextWidth('n'); {Wie breit ist ca. ein Buchstabe?}
      Zl := 3 * ZlDiff;
      Sp := 8 * SpDiff;
      FOR ZlNr := 0 to Pred(Memo.Lines.Count) DO
      BEGIN
        TextOut(Sp, Zl, Memo.Lines[ZlNr]);
        INC(Zl, ZlDiff);
        IF Zl > Hoehe - 5 * ZlDiff THEN
        BEGIN
          Printer.NewPage;
          Zl := 3 * ZlDiff;
        END;
      END; {FOR}
    END; { WITH }
    Printer.EndDoc;
  END;
end; { ButtonDruckClick }
Getippt und nicht getestet.

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat