Thema: Delphi Tabelle drucken?!

Einzelnen Beitrag anzeigen

Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#7
  Alt 29. Jan 2003, 17:40
Hier mal etwas Code meiner Methode:
Code:
uses Printers

procedure TForm1.Button1Click(Sender: TObject);
var z,zh,s,sb,gr:integer;//zh=zeilenhöhe;sb=spaltenbreite
begin
If PrintDialog1.Execute
 then
  begin
   Printer.Title:='Text';//angezeigter Text im Druckmanager
   Printer.Canvas.Font.Size:=7;
   Printer.BeginDoc;
   gr:=Printer.Canvas.Font.Height*-1 div Printer.Canvas.Font.size;
   zh:=0;//Abstand oben
   For z:=0 to StringGrid1.RowCount-1 do
    begin
     sb:=0;//Absand beim Drucken von links
     For s:=0 to StringGrid1.ColCount-1 do
      begin
       //Rechteck
       Printer.Canvas.Rectangle(sb,zh,sb+StringGrid1.ColWidths[s]*gr,zh+StringGrid1.RowHeights[z]*gr);
       //Text
       Printer.Canvas.TextOut(sb+3*gr,zh+3*gr,StringGrid1.Cells[s,z]);
       sb:=sb+StringGrid1.ColWidths[s]*gr;
      end;
     zh:=zh+StringGrid1.RowHeights[z]*gr;
     If Printer.PageHeight-zh-StringGrid1.RowHeights[z+1]*gr<0
      then
       begin
        zh:=0;//Abstand oben
        Printer.NewPage;
       end;
    end;
   Printer.EndDoc;
  end;
end;
Wie du an Hand der zwei Schleifen siehst, wird das StringGrid einfach schön Zelle für Zelle auf das Printer.Canvas (siehe z.B. Delphi Hilfe) übertragen.

Hoffe, damit kannst du jetzt mehr anfangen.

Gruß
  Mit Zitat antworten Zitat