Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Tlistview drucken (https://www.delphipraxis.net/3194-tlistview-drucken.html)

TheReaper 28. Feb 2003 08:56

Doch hab ich, weil du die auch dahinter geschrieben hast. wo dann? :mrgreen:

Daniel B 28. Feb 2003 15:48

Zitat:

Zitat von TheReaper
Doch hab ich, weil du die auch dahinter geschrieben hast. wo dann? :mrgreen:

Ich habs mir gedacht.
Aber es muss auch dort bleiben.
Also, da wo es jetzt ist, soll es mit schwarz bleiben.
Da Du nur die letzte Zeile Bunt und in Farbe haben willst, musst man jetzt in der for-Schleife zwei ifs einbauen. Das sieht dann etwa so aus.

Delphi-Quellcode:
Printer.Canvas.Font.Color := clBlack;
for i := 0 to LV.Count -1 do
begin
  if i <= LV.Count -2 then
  begin
    WriteLn(LV.Item[i]);
  end
  else
  begin
    Printer.Canvas.Font.Color := clGreen; //Hier also die Farbe für die letzte Zeile
    WriteLn(LV.Item[i]); //Letzte Zeile schreiben
  end;
  Printer.Canvas.Font.Color := clBlack; //Damit der Standard wieder da ist
end;
So, jetzt mal auf die schnelle und ungetestet. Dürfte aber gehen.
Also die drei Zeile lassen wie sie sind.
Vor der letzten Zeile die Farbe umstellen und danach wieder zurück auf schwarz.

Grüsse, Daniel :hi:

TheReaper 28. Feb 2003 17: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]

Daniel B 28. Feb 2003 17:08

Zitat:

Zitat von TheReaper
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.

Naja, DU! hattest ja auch "nur die letzte zeile will ich grün drucken. jetzt ist der ganze text grün" geschrieben!

Grüsse, Daniel :hi:

TheReaper 28. Feb 2003 17:13

Kann es sein dass man im "Textfile" nur eine farbe zuweisen kann und nicht mehrere? wäre ja möglich, weil ja auch größe und font an den drucker gesendet wird aber erst nachdem das textfile schon lange steht.

Daniel B 28. Feb 2003 17:30

Zitat:

Zitat von TheReaper
Kann es sein dass man im "Textfile" nur eine farbe zuweisen kann und nicht mehrere? wäre ja möglich, weil ja auch größe und font an den drucker gesendet wird aber erst nachdem das textfile schon lange steht.

Versuch doch mal folgendes: ;)
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  tf: TextFile;
begin
  AssignPrn(tf);
  ReWrite(tf);

  Printer.Canvas.Font.Color := clBlue;
  Printer.Canvas.Font.Size := 5;
  WriteLn(tf, 'Blau');

  Printer.Canvas.Font.Color := clRed;
  Printer.Canvas.Font.Size := 10;
  WriteLn(tf, 'Rot');

  Printer.Canvas.Font.Color := clGreen;
  Printer.Canvas.Font.Size := 15;
  WriteLn(tf, 'Gruen');

  CloseFile(tf);
end;
Grüsse, Daniel :hi:

TheReaper 28. Feb 2003 17:40

die größe wird geändert aber trotzdem alles blau.

Daniel B 28. Feb 2003 17:44

Bei mir kommt es Bunt, so wie ich es will und geschrieben habe!
Dann liegt es wohl an Deinem Rechner. Frag mich bitte nicht warum. :shock: Bei mir geht es ja.

Grüsse, Daniel :hi:

Nachtrag: Siehe Anhang, das ist der Beweis. ;)

TheReaper 28. Feb 2003 17:59

hmm. naja trotzdem danke. warst ne echte hilfe! THX! :tongue: :spin2:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:03 Uhr.
Seite 2 von 2     12   

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