Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Drucken über Canvas! (https://www.delphipraxis.net/68364-drucken-ueber-canvas.html)

Goldesel 28. Apr 2006 21:59

Re: Drucken über Canvas!
 
Mmmmhhh ... hab das Code-Design jetzt geändert und ein paar Sachen ausprobiert aber den Fehler finde ich immer noch nicht!

Mackhack 28. Apr 2006 22:01

Re: Drucken über Canvas!
 
Poste halt nochmal dein neudesignes Code-Stueck!

Goldesel 28. Apr 2006 22:05

Re: Drucken über Canvas!
 
So, sollte ich Fehler in der Formatierung gemacht haben, BITTE UNBEDINGT drauf aufmerksam machen. Hab bisher sehr selten meinen Code formatiert!

Mackhack 28. Apr 2006 22:06

Re: Drucken über Canvas!
 
Zitat:

Zitat von Goldesel
So, sollte ich Fehler in der Formatierung gemacht haben, BITTE UNBEDINGT drauf aufmerksam machen. Hab bisher sehr selten meinen Code formatiert!

Dann wird es aber hoechste Zeit sich mal den StyleGuide von Borland anzusehen und den auch anzuwenden. Wie einer meiner Vorredner schon sagte kann man damit auch Fehler vorbeugen!

Ausserdem,... Nutz doch dafuer die QuickReport oder FastReport-Kompo. Dann hast sogar ne Vorschau! Warum das Rad neu erfinden?

Goldesel 28. Apr 2006 22:24

Re: Drucken über Canvas!
 
@ mackhack

Wo finde ich die QuickReports von Delphi? Irgendwie scheine ich die nicht unter meinen Komponenten zu haben ...

Hawkeye219 28. Apr 2006 22:40

Re: Drucken über Canvas!
 
Ok Jannik, der Code ist nun schon etwas lesbarer geworden. Wenn du diesen Thread liest, wirst du sehen, daß es sehr viele unterschiedliche Meinungen zum Thema "Formatierung von Quelltexten" gibt. Letztlich orientieren sich die meisten doch mehr oder weniger an den unverbindlichen Vorgaben von Borland. In diesen Vorgaben findest du noch viele Hinweise, wie du die Lesbarkeit deines Codes weiter verbessern kannst.

Nun zum Fehler. Hier die grobe Struktur deines Codes als Pseudo-Code:

Delphi-Quellcode:
<Druckposition initialisieren>
table.First;
printer.BeginDoc;
<Überschrift drucken>

repeat
 
  while not table.Eof do
    begin
      <aktuellen Datensatz lesen>
      table.Next;
      <Datensatz an aktueller Position drucken>
    end;

until "letzter Datensatz erreicht";
 
printer.EndDoc;
 
<vertikale Druckposition erhöhen>
if "Position > 6000" then
  begin
    printer.NewPage;
    <Position auf 200 setzen>
  end;
Kann das funktionieren?

Goldesel 29. Apr 2006 09:34

Re: Drucken über Canvas!
 
Eine Frage zu deinem Code. Meinst du mit <Druckpositiojn initialisieren> dasselbe wie lines:=900; ?

Solltest du damit das oben genannte meinen, muss ich dich leider enttäuschen. Dies funktioniert auch nicht. Es wird nach wie vor nur der letzte Datensatz gedruckt (und der header). Aber ich werde heute wahrscheinlich auf QuickReport umsteigen.

Hawkeye219 29. Apr 2006 10:44

Re: Drucken über Canvas!
 
Zitat:

Zitat von Goldesel
Dies funktioniert auch nicht. Es wird nach wie vor nur der letzte Datensatz gedruckt (und der header).

Ich habe lediglich deinen Code als Pseudo-Code formuliert, weil ich dir damit die Fehlersuche etwas erleichtern wollte.

Gruß Hawkeye

Goldesel 29. Apr 2006 10:56

Re: Drucken über Canvas!
 
Achso ... tut mir leid. Das muss ich überlesen haben. Natürlich ... jetzt hab ichs auch hinbekommen:

Delphi-Quellcode:
<Druckposition initialisieren>
table.First;
printer.BeginDoc;
<Überschrift drucken>

repeat
 
  while not table.Eof do
    begin
      <aktuellen Datensatz lesen>
      table.Next;
      <Datensatz an aktueller Position drucken>
     <vertikale Druckposition erhöhen>
     if "Position > 6000" then
      begin
       printer.NewPage;
       <Position auf 200 setzen>
      end;
    end;


until "letzter Datensatz erreicht";
 
printer.EndDoc;
So siehts bei mir jetzt aus und es funktioniert sogar. Aber ich denke trotzdem, dass ich
auf QuickReport umsteigen werde, da es meiner Meinug nach komfortabler zu nutzen ist und mehr Möglichkeiten bietet. Zumal dies das erste Mal war, dass ich mich mit Printer.Canvas beschäftigt habe.
Weiß vielleicht noch jemand wie ich dem Dokument einen Dokumentname zuordnen kann, welcher auch in der Durckerwarteschlange angezeigt wird?

Vielen Dank
Jannik

mkinzler 29. Apr 2006 11:13

Re: Drucken über Canvas!
 
Borland liefert seit Version 6 zusätzlich Rave Reports mit. Ab Version 2005 ausschließlich!(Win32)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:56 Uhr.
Seite 2 von 3     12 3      

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-2025 by Thomas Breitkreuz