Einzelnen Beitrag anzeigen

m-werk

Registriert seit: 14. Jun 2002
215 Beiträge
 
Delphi 2009 Architect
 
#13

AW: Im druck Zeilenumbruch erzwingen

  Alt 11. Apr 2012, 11:48
Ok, ich habs nun fast hinbekommen. Es wird zwar ausgedruckt, aber ich komm mit den Positionen nicht klar. Es erscheint immer wieder in der linken Ecke oben. Auch wenn ich den wert von InflateRect ändere. Wenn ich den auf -400 einstelle, kommt nichts auf Papier
Code:
procedure TForm1.BtnPrintClick(Sender: TObject);
var rec : TRect;
begin
if PrintDialog1.Execute then
  begin
    rec.Left := 400;
    rec.Top := 1150;
    rec.Right := 4000;
    rec.Bottom := 3000;
    Printer.BeginDoc;
    Printer.Canvas.Font.Size:=10;
    Printer.Canvas.TextOut(3500,200,DateTimeToStr(now));
    Printer.Canvas.Font.Size:=12;
    Printer.Canvas.Font.Style:=[fsBold];
    Printer.Canvas.TextOut(400,200,DBEditNachname.Text);
    Printer.Canvas.TextOut(1500,200,DBEditVorname.Text);
    Printer.Canvas.Font.Style:=[];
    Printer.Canvas.TextOut(400,350,DBEditAdresse.Text);
    Printer.Canvas.TextOut(1500,350,DBEditOrt.Text);
    Printer.Canvas.Font.Style:=[fsUnderline];
    Printer.Canvas.TextOut(400,600,'Telefon:');
    Printer.Canvas.Font.Style:=[];
    Printer.Canvas.TextOut(400,750,DBEditTelefon1.Text);
    Printer.Canvas.TextOut(1500,750,DBEditTelefon2.Text);
    Printer.Canvas.TextOut(2500,750,DBEditTelefon3.Text);
    Printer.Canvas.Font.Style:=[fsUnderline];
    Printer.Canvas.TextOut(400,1000, 'Beschreibung:');
    Printer.Canvas.Font.Style:=[];
    rec := ClientRect;
    InflateRect(rec, -3, -3);
    DrawText(Printer.Canvas.Handle, PChar(DBMemo1.Text), -1, rec, DT_TOP or DT_LEFT or DT_WORDBREAK);
end;
Grüße, m-werk
  Mit Zitat antworten Zitat