AGB  ·  Datenschutz  ·  Impressum  







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

Stringrid mehr Seiten drucken

Ein Thema von Privateer3000 · begonnen am 16. Aug 2006 · letzter Beitrag vom 16. Aug 2006
Antwort Antwort
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#1

Stringrid mehr Seiten drucken

  Alt 16. Aug 2006, 10:46
Hallo Gemeinde
mit dieser Procdure soll ein Stringgrid gedruckt werden.
Leider druckt es nur eine Seite.
was ist falsch?
Delphi-Quellcode:
rocedure PrintGrid(sGrid: TStringGrid; recid: TRichEdit; sTitle: string);
var
  X1, X2: Integer;
  Y1, Y2: Integer;
  TmpI: Integer;
  F: Integer;
  TR: TRect;
begin
  Printer.Title := sTitle;
  Printer.BeginDoc;
  Printer.Canvas.Pen.Color := 0;
  Printer.Canvas.Font.Name := 'Times New Roman';
  Printer.Canvas.Font.Size := 16;
  Printer.Canvas.Font.Style := [fsBold, fsUnderline];
  Printer.Canvas.TextOut(0, 100, Printer.Title);
  Printer.Canvas.TextOut(1200,100, DateToStr(date));
  for F := 0 to sGrid.ColCount - 1 do
  begin
    X1 := 0;
    for TmpI := 0 to (F - 1) do
      X1 := X1 + 7 * (sGrid.ColWidths[TmpI]);
    Y1 := 300;
    X2 := 0;
    for TmpI := 0 to F do
      X2 := X2 + 7 * (sGrid.ColWidths[TmpI]);
    Y2 := 450;
    TR := Rect(X1, Y1, X2 - 30, Y2);
    Printer.Canvas.Font.Style := [fsBold];
    Printer.Canvas.Font.Size := 9;
    Printer.Canvas.TextRect(TR, X1 + 50, 350, sGrid.Cells[F, 0]);
    Printer.Canvas.Font.Style := [];
    for TmpI := 0 to sGrid.RowCount - 1 do
    begin
      Y1 := 150 * TmpI + 300;
      Y2 := 150 * (TmpI + 1) + 300;
      TR := Rect(X1, Y1, X2 - 30, Y2);
      Printer.Canvas.TextRect(TR, X1 + 50, Y1 + 50, sGrid.Cells[F, TmpI]);
    end;
  end;
  Printer.EndDoc;
end;
sonnige Grüße
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: Stringrid mehr Seiten drucken

  Alt 16. Aug 2006, 11:27
Hallo,

lange nicht gelesen Du musst die neue Seite selbst initieren. Wenn Du bemerkst, dass Dein Y1 + 50 über die Seitengröße (Printer.Canvas.ClipRect.Bottom) hinaus geht, dann musst Du vorher Printer.NewPage; aufrufen und anschließend Y1 zurücksetzen.

Habe ich mich jetzt verständlich ausgedrückt

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Privateer3000
Privateer3000

Registriert seit: 10. Jun 2002
Ort: Jena
1.128 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: Stringrid mehr Seiten drucken

  Alt 16. Aug 2006, 12:27
hiho sakura,
ja in der Tat lange nicht "gesehen"
Verstanden habe ich das schon ... aber die umsetzung
ich probiers mal.

Danke auf jeden fall
Peter
+++Versuch es nicht mit Gewalt + Nimm einen größeren Hammer! +++
  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 00:28 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