Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie funktioniert Druck eines <Blob Memo> mit Zeilenumbruch ? (https://www.delphipraxis.net/18215-wie-funktioniert-druck-eines-blob-memo-mit-zeilenumbruch.html)

kuttis 16. Mär 2004 06:53


Wie funktioniert Druck eines <Blob Memo> mit Zeilenumb
 
Guten Morgen DP`ler,

nachdem ich hier fast verzweifel, hoffe ich auf euer Wissen, denn ich versuche krampfhaft folgendes zu realisieren.

Ich möchte einige Felder einer DBase- Datenbank drucken. Der Druck an sich funzt auch schon.

Ich gehe einfach so lange die Datenbank durch und drucke die Felder A, B, C, D bis EOF = true und passe für jeden Durchlauf die Koordinaten meines DinA4- Blattes an.
Leider muss ich auch den Inhalt eines Memo- Feldes drucken. Bis lang sieht mein Druck so aus, dass ca. die ersten 150 Zeichen meines Memos gedruckt werden und der Rest, der nicht mehr in die Zeile passt, abgeschnitten wird. Und das ist der Knackpunkt. Denn:

Wie kann ich das <Blob Memo> so auf´s Papier bringen, dass bei soundsovielen Zeichen ein Zeilenumbruch stattfindet und der Rest meines Memos in der nächsten Zeile gedruckt wird?

Der Code sieht bis lang (etwas abgekürzt) so aus:

Delphi-Quellcode:
// zuvor richte ich die Anordnung auf dem Papier ein
while Table1.EOF=false do
    begin
    Printer.Canvas.Font.Height:=40;
    Printer.Canvas.TextOut(x, y, '<Blob Memo>');
    Printer.Canvas.Font.Height:=48;
    Printer.Canvas.TextOut(x+i, y-j, Table1.fieldByName('<Blob Memo>').asString);
    Table2.Next;
    end;
// nach dem Schleifendurchlauf beende ich den Druck
Ich hoffe auf eure Hilfe.

Gruß Kuttis[dp]

[edit=sakura] [delphi]-Tags eingefügt. Mfg, sakura[/edit]

CenBells 16. Mär 2004 09:31

Re: Wie funktioniert Druck eines <Blob Memo> mit Zeile
 
hallo,

dafür, was du da programmiert hast, gibt es doch schicke komponenten wie z.b. Quickreport oder Rave u.a.
Die übernehmen für dich auch den umbruch eines memos.


Gruß
Ken

mschaefer 16. Mär 2004 10:00

Re: Wie funktioniert Druck eines <Blob Memo> mit Zeile
 
Moin. moin,

Von Prinzip kannst Du die Zeilen im Memo
jeweils in eine Zeile auf dem Canvas drucken

Delphi-Quellcode:
   for i := 1 to Pred(Memo.count) do
   begin
      Printer.Canvas.TextOut(x, y, 'Memo.line[i]);
      y := y + 20;
   end;

Irgendwann kommst Du aber an das Problem der Seitenaufteilung. Sprich Du hast ein Memo am Ende
der Seite und es müßte auf der folgenden weitergehen. Das ist kniffliger als man so annimmt.

Da bieten sich Reportkomponenten wie Ken schon angesprochen hat. DaQReport aber bei den neueren Delphis nicht mehr dabei ist und mir für die einfachen Sachen ein großer Reportgenerator zu
klobig ist habe ich ein Auge auf die Komponenten von AlReport geworfen

http://www.devarchive.com/download.php?programid=58

Denke da lohnt sich ein Blick drauf, zumal das Freeware ist.

Grüße // Martin

kuttis 16. Mär 2004 10:14

Re: Wie funktioniert Druck eines <Blob Memo> mit Zeile
 
Hallo Ken, Hallo Martin

ich habe die Kompos noch nie benutzt, deshalb werfen sich hier gerade tausend Fragen auf. Insgesamt arbeite ich das erste mal mit Druck.

Ich werde mal schauen, ob ich was schlaues zur Erläuterung finde. Oder wie sich dein Vorschlag, Martin, verwenden lässt.

Seitenumbrüche habe ich schon realisiert. Da bietet Canvas ja was schönes an.

Vielen Dank für eure Mühe.

Gruß Kuttis

CenBells 16. Mär 2004 10:35

Re: Wie funktioniert Druck eines <Blob Memo> mit Zeile
 
Hallo,

ich hätte da auch noch einen sehr schönen tip.
FreeReport von der seite
www.fastreport.ru
Verwende ich in einem großen projekt und die anwender sind sehr zufrieden.


Gruß
Ken


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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-2025 by Thomas Breitkreuz