Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Richedit drucken mit Farbe UND Seitenzahl (https://www.delphipraxis.net/51699-richedit-drucken-mit-farbe-und-seitenzahl.html)

padavan 17. Aug 2005 12:56


Richedit drucken mit Farbe UND Seitenzahl
 
Hallo,

möchte eine Richedit ausdrucken - tja, bisher muss ich mich entscheiden zwischen

Delphi-Quellcode:
Richedit1.print();
was mir das Feld schön in Farbe rausdruckt, so wie ich´s auf dem Bildschirm sehe, oder einer eigenen Routine


Delphi-Quellcode:
      i := 0;
      j := 100;
      Seite := 1;
      Seitenanzahl := (Richedit1.Lines.Count div 64) + 1;
      neueSeite := false;
      printer.BeginDoc;
      repeat
        if (getasynckeystate(vk_escape) <> 0) then break;
        printer.Canvas.TextOut(200,j,Richedit1.Lines[i]);
        printer.Canvas.TextOut(2300,6850,inttostr(Seite) + ' - ' + inttostr(Seitenanzahl)); // Seite 1-2
        printer.Canvas.TextOut(4480,6850,datetostr(now));
        printer.Canvas.TextOut(200,6850,Panel3_1.Caption);
        if j = 6400 then neueSeite := true;
        if neueSeite = true then begin
          printer.NewPage;
          neueseite := false;
          j := 100;
          Seite := Seite + 1;
        end;
        i := i + 1;
        j := j + 100;
      until i = Richedit1.Lines.count;
      printer.EndDoc;
Hier schaffe ich es Seitenzahl, Datum und Name des Dokuments einzuplegen.

Wie geht beides ???

PS: Die Stiftfarbe vor jeder Zeile zu ändern hab ich schon versucht, das Problem liegt eher darin, herauszufinden, welche Farbe hat jedes Zeichen, da wie könnte es anders sein, die Zeilen nicht unbedingt in deiner Farbe sein müssen

shmia 17. Aug 2005 13:09

Re: Richedit drucken mit Farbe UND Seitenzahl
 
Wenn du den Sourcecode der VCL hast (bitte deine Delphi Version im Benutzerprofil eintragen), dann kannst du
die procedure TCustomRichEdit.Print(const Caption: string) in dein Programm kopieren und entsprechend anpassen. (nicht ganz einfach, aber möglich)
Der Trick ist die Message EM_FORMATRANGE, die an das Handle von TRichEdit geschickt wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:40 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