![]() |
Tabelle drucken?!
Hallo!
Ich programmier grade an einem Programm, welches einen Messdienerplan erstellen soll. Ich bin noch nicht sehr weit, aber mir ist schon aufgefallen, dass ich nicht ganz weiß, wie ich den erstellten Plan am Ende aufs Papier bekommen soll. Ich habe vor eine StringGrid Tabelle zu verwenden, aber ich weiß nicht, wie man die ausdrucken kann. Kann mir jemand helfen??? Schon mal danke im vorraus! See you Mali |
Printer.Canvas ist die Lösung!
Kannst aber auch mal die Suche benutzen, dies wurde schon mind. 2 mal hier durchgegangen. Gruß |
Hallo Mali,
herzlich willkommen im Delphi-Praxis-Forum. Zitat:
Zum Ausdrucken kannst du dann sehr einfach Quickreport benutzen. Wie auch immer du dich entscheidest, hier findest du sicher weitere Hilfe. |
Also danke erstmal, dass ich so schnell ne Antwort bekommen habe!
Ich weiß nur nicht so ganz, wie ich jetzt letzt endlich machen soll. Die erste Möglichkeit von MrSpock kann ich nicht nehmen, da ich nur Delphi 6.0 Personal hab :( . Die Idee von Tpercon hört sich nicht schlecht an, aber wird dann nicht nur ein Teil der Tabelle gedruck. Es kann aber auch sein, dass ich es nicht ganz verstehe. Kann das einer noch näher erklären??? Und was Quickreport ist weiß ich auch noch nicht wirklich. Ich seh schon ich kann noch viel lernen. :wink: |
Du willst ja das ganze StringGrid drucken, oder?
Dazu zeichnest du einfach das StringGrid auf das Printer.Canvas. Mit zwei Schleifen und so ist das schnell gemacht, gibt aber hier auch schon zwei fertige Methoden. Gruß |
Ja du hast mein anliegen verstanden, ich will, dass der Plan als Tabelle ausgedruckt wird, und dann weitergegeben werden kann.
Deine Idee scheint ganz gut zu sein, aber ich kenne mich mit der Printer Canvas nicht aus. Was ist das genau, und wie wende ich sie an. Die Methoden hab ich übrigens nicht gefunden hast du einen Tipp, unter was ich suchen muss???? |
Hier mal etwas Code meiner Methode:
Code:
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.
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; Hoffe, damit kannst du jetzt mehr anfangen. Gruß |
:hello: Super!
Vielen Dank! Ich glaube, damit komme ich zurecht! Ich werd's aber erst morgen ausprobieren können, da ich nur ein armer Schüler bin :oops: . Darum hab ich auch die Englische Delphi Version und verstehe teilweise die Hilfe nicht! See you |
Hallo!
Kann ich auch schon im voraus definieren, dass das Dokument nur im Querformat gedruckt werden kann? Und wie kann ich dem Ausdruck eine Überschrift geben? Grüße, dopeline :dancer: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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