AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Inhalt eines Memos mit dem Printer-Objekt ausdrucken
Thema durchsuchen
Ansicht
Themen-Optionen

Inhalt eines Memos mit dem Printer-Objekt ausdrucken

Ein Thema von rollstuhlfahrer · begonnen am 1. Aug 2007 · letzter Beitrag vom 1. Aug 2007
Antwort Antwort
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#1

Inhalt eines Memos mit dem Printer-Objekt ausdrucken

  Alt 1. Aug 2007, 20:22
Hallo Leute,

ich bin dabei ein Programm zu schreiben, das ein Memo-Feld besitzt.
Der Inhalt dieses Memo-Feldes soll dann über den Drucker auf ein Blatt Papier gebracht werden.
Zur Zeit sieht die Prozedur so aus (! nicht funktionsfähig !)
Delphi-Quellcode:
procedure TForm1.Drucken1Click(Sender: TObject);
begin
  IF PrintDialog1.Execute
     THEN BEGIN
          { AssignPrn (DruckDatei);  <-- Das ist die alte Variante, die aber unschöne Seiten
          Rewrite (DruckDatei);      produziert hat.
          writeln (DruckDatei, Memo1.Lines.GetText);
          CloseFile (DruckDatei); }

          Printer.BeginDoc;
          Hoehe := Printer.PageHeight; { Wie groß ist die Seite? }
          ZlDiff := Hoehe DIV 65; { Zeilenhoehe }

           WITH Printer.Canvas DO BEGIN
                SpDiff :=TextWidth('n'); { Wie breit ist ca. ein Buchstabe? }
                Zl := 3*ZlDiff;
                Sp := 8*SpDiff;
                TextOut (Sp*SpDiff,Zl,Memo1.Lines.GetText); {Hier ist das Problem}
                INC (Zl,ZlDiff);
                      IF Zl > Hoehe - 5*ZlDiff
                         THEN BEGIN
                              Printer.NewPage;
                              Zl := 3*ZlDiff;
                              END;
                END; { WITH }
           Printer.EndDoc;
           END;
end;
Das eigentliche Problem beläuft sich darauf, dass die Zeilen, wie im Quelltext angegeben, nicht einzeln ausgelesen werden.
Der ursprüngliche Quellcode dazu kommt von http://noebis.pi-noe.ac.at/delphi/kapitel15.htm
Bernhard
  Mit Zitat antworten Zitat
marabu

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

Re: Inhalt eines Memos mit dem Printer-Objekt ausdrucken

  Alt 1. Aug 2007, 21: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
Benutzerbild von rollstuhlfahrer
rollstuhlfahrer

Registriert seit: 1. Aug 2007
Ort: Ludwigshafen am Rhein
1.529 Beiträge
 
Delphi 7 Professional
 
#3

Re: Inhalt eines Memos mit dem Printer-Objekt ausdrucken

  Alt 1. Aug 2007, 21:30
thx, das funktioniert genau sowie ich mir das vorgestellt hab.

Damit ist diese offene Frage beantwortet

rollstuhlfahrer
Bernhard
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:22 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