Thema: Delphi Tlistview drucken

Einzelnen Beitrag anzeigen

TheReaper

Registriert seit: 27. Feb 2003
Ort: chemnitz
90 Beiträge
 
Delphi 2005 Personal
 
#13
  Alt 28. Feb 2003, 18:04
Jo, nur das problem ist ich will mal am anfang oder mittendrin. zufällig halt. was der anwender eingibt. aus deinem qc lese ich dass nur die letzte zeile farbig wird. außerdem hatte ich am ende ein writeln außerhalb der schleife und erst nach der der schleife das clgreen. es war aber der gesammte text grün. auch die überschrift.
Delphi-Quellcode:
var i: Integer;
    p:string;
    s:string[40];
    t:string[12];
    r:string[13];
    j,n:string[2];
    g:string[10];
    vorbereiten:textfile;
    PrintText: TextFile;
begin
with form1.listview1 do
begin

AssignFile(vorbereiten, 'druckfile.txt');
ReWrite(vorbereiten);

     WriteLn(vorbereiten);
     WriteLn(vorbereiten, ' Videoliste by TheReaper');
     WriteLn(vorbereiten);
     WriteLn(vorbereiten, ' Titel Qualität Genre Nr. CDs Typ ');
     WriteLn(vorbereiten, ' ------------------------------------------------------------------------------------');
     for i := 0 to ListView1.Items.Count -1 do
     begin
      s := ListView1.Items.Item[i].Caption;
      t := ListView1.Items.Item[i].SubItems[0];
      r := ListView1.Items.Item[i].SubItems[1];
      j := ListView1.Items.Item[i].SubItems[2];
      n := ListView1.Items.Item[i].SubItems[3];
      g := ListView1.Items.Item[i].SubItems[4];
      while Length(s) < 40 do
      begin
        s := s + ' ';
      end;
      while Length(t) < 12 do
      begin
        t := t + ' ';
      end;
      while Length(r) < 13 do
      begin
        r := r + ' ';
      end;
      while Length(j) < 2 do
      begin
        j := j + ' ';
      end;
      while Length(n) < 2 do
      begin
        n := n + ' ';
      end;
      while Length(r) < 10 do
      begin
        g := g + ' ';
      end;
      WriteLn(vorbereiten, ' ' + s + ' ' + t + ' ' + r + ' ' + j + ' ' + n + ' ' + g);
     end;
     WriteLn(vorbereiten, ' ------------------------------------------------------------------------------------');
     WriteLn(vorbereiten);
     Printer.Canvas.font.color:=clgreen;
     WriteLn(vorbereiten, ' Insgesammt '+inttostr(anzfilme)+' Filme auf '+inttostr(gesanzcd)+' CDs');
     Reset(vorbereiten);
      AssignPrn(PrintText);
      Rewrite(PrintText);
      Printer.Canvas.Font.name := 'Courier New';
      Printer.Canvas.Font.size := 10;
      while not EOF(vorbereiten) do
      begin
      ReadLn(vorbereiten, p);
      WriteLn(printtext, p);
      end;
      CloseFile(printtext);
      CloseFile(vorbereiten);
end;
end;
[edit=Daniel B]Delphi-Tags gesetzt. Das nächste mal bitte [ delphi] anstatt [ code] benutzen. Danke. MfG Daniel B.[/edit]
  Mit Zitat antworten Zitat