AGB  ·  Datenschutz  ·  Impressum  







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

Tabelle drucken?!

Ein Thema von Mali · begonnen am 28. Jan 2003 · letzter Beitrag vom 5. Mai 2003
Antwort Antwort
Mali

Registriert seit: 28. Jan 2003
6 Beiträge
 
#1

Tabelle drucken?!

  Alt 28. Jan 2003, 20:57
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
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2
  Alt 28. Jan 2003, 21:23
Printer.Canvas ist die Lösung!

Kannst aber auch mal die Suche benutzen, dies wurde schon mind. 2 mal hier durchgegangen.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3
  Alt 29. Jan 2003, 06:57
Hallo Mali,

herzlich willkommen im Delphi-Praxis-Forum.

Zitat:
Ich habe vor eine StringGrid Tabelle zu verwenden
Eine StringGrid Tabelle gibt es so nicht. Du kannst eine Tabelle erzeugen (z.B. Paradox) und diese in einer DBGrid Komponente anzeigen oder ein reines Stringgrid anlegen und die Daten dann z.B. in einer "normalen" Datei speichern. Der erste o.g. Vorschlag ist der einfachere, bedeutet aber, dass du Datenbankunterstützung benötigst, die in der Regel ab der professional Version von Delphi enthalten ist.

Zum Ausdrucken kannst du dann sehr einfach Quickreport benutzen.

Wie auch immer du dich entscheidest, hier findest du sicher weitere Hilfe.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Mali

Registriert seit: 28. Jan 2003
6 Beiträge
 
#4
  Alt 29. Jan 2003, 16:57
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.
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#5
  Alt 29. Jan 2003, 17:11
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ß
  Mit Zitat antworten Zitat
Mali

Registriert seit: 28. Jan 2003
6 Beiträge
 
#6
  Alt 29. Jan 2003, 17:30
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????
  Mit Zitat antworten Zitat
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
Mali

Registriert seit: 28. Jan 2003
6 Beiträge
 
#8
  Alt 29. Jan 2003, 22:21
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 .
Darum hab ich auch die Englische Delphi Version und verstehe teilweise die Hilfe nicht!
See you
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#9
  Alt 5. Mai 2003, 18:24
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
  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 04:22 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