Einzelnen Beitrag anzeigen

Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: ListBox verschiedenfarbig drucken

  Alt 20. Dez 2010, 20:55
Die Listbox mit farbigen Zeilen ist sicher Ownerdrawn, die Farbe hast Du möglicherweise in den Objects hinterlegt?

Ich würde so vorgehen, den gegf. nötigen Seitenwechsel habe ich hier noch nicht berücksichtigt, sollte aber auch für Dich kein Problem sein.

Delphi-Quellcode:
var
  i:Integer;
  s:String;
  r:Trect;
begin
   r.left := 100;
   r.Right := Printer.PageWidth - 100;
   r.Top := 100;
   Printer.BeginDoc;
   for I := 0 to Listbox1.Items.Count - 1 do
      begin
        // Farbe aus Objects
        Printer.Canvas.Font.Color := Integer(Listbox1.items.Objects[i]);
        s := Listbox1.items[i];
        // benötigten Platz mit Zeilenumbruch berechnen
        Printer.Canvas.TextRect(r,s,[tfWordBreak,tfCalcRect]);
        Printer.Canvas.TextRect(r,s,[tfWordBreak]);
        // Top für nächste Zeile auf Bottom der letzen Zeile setzen
        r.Top := r.Bottom;
      end;
   Printer.EndDoc;
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat