AGB  ·  Datenschutz  ·  Impressum  







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

Memo text ausdrucken

Ein Thema von Finki · begonnen am 2. Jul 2013 · letzter Beitrag vom 4. Jul 2013
 
Finki

Registriert seit: 2. Jul 2013
120 Beiträge
 
FreePascal / Lazarus
 
#16

AW: Memo text ausdrucken

  Alt 2. Jul 2013, 18:55
also hier ist mal der code wie es aktuell ist wobei der besagte fehler auftritt

die uses

Code:
uses
  Classes, SysUtils, FileUtil, PrintersDlgs, Forms, Controls, Graphics, Dialogs,
  StdCtrls, ComCtrls, Buttons, EditBtn, ExtCtrls, PopupNotifier, Printers, Windows,
  Menus, Grids;
die procedure

Code:
   
type

  { TForm1 }

  TForm1 = class(TForm)
  PrintDialog1: TPrintDialog;
  btnPrint: TSpeedButton;  
  procedure btnPrintClick(Sender: TObject);
der button btnPrint

Code:
procedure TForm1.btnPrintClick(Sender: TObject);
begin

Drucken(Memo.Lines);

end;
und die procedure Drucken

Code:
procedure TForm1.Drucken(sl: TStrings);
var zeile, x, y: integer;
breite, hoehe, randlinks, randoben: integer;
begin
if PrintDialog1.Execute then
begin
   Printer.BeginDoc; //Druckjob beginnen
   SetMapMode(Printer.Canvas.Handle, MM_LOMETRIC); //Umstellen auf 1/10 mm

   //Schrift-Einstellungen:

   Printer.Canvas.Font.Name:='Courier New';
   Printer.Canvas.Brush.Color:=clWhite;
   Printer.Canvas.Font.Height:=50; //5 mm

   //Blattgöße in 1/10 mm ermitteln:
   breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
   hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
   randlinks:=60; //0,6 cm
   randoben:=150; //1,5 cm
   x:=randlinks;
   y:=randoben*-1;
   for zeile:=0 to sl.Count-1 do
     begin
       if -y>(hoehe-2*randoben) then
          begin
          y:=randoben*-1;
          Printer.NewPage;
          end;
       if y=-randoben then
          begin
          Printer.Canvas.Font.Style:=[fsbold];
          Printer.Canvas.TextOut(x, y, 'Seite '+
          IntToStr(Printer.PageNumber));
          Printer.Canvas.Font.Style:=[];
          y:=y-Printer.Canvas.TextHeight(sl[zeile]);
          end;
     Printer.Canvas.TextOut(x, y, sl[zeile]);
     y:=y-Printer.Canvas.TextHeight(sl[zeile]);
     end;
   Printer.EndDoc;
end;
end;
  Mit Zitat antworten Zitat
 

 

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 05:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz