Einzelnen Beitrag anzeigen

Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#10

AW: Listview drucken, Zeilen beim Ausdruck färben

  Alt 22. Sep 2014, 08:10
Er mag unten zwar spaltenweise ausgegeben werden,
aber vorher wird ja Zeile für Zeile diese "spaltenweise" Ausgabe in einer Schleife durchgeführt
Delphi-Quellcode:
       for CurItem := 0 to listview1.Items.Count - 1 do
        begin
          if (CurLine > LinesOnPage) or (CurLine = 0) then
und (zumindest in diesem Code)
könntest du hier
Delphi-Quellcode:
         for CurCol := -1 to iColumnCount - 2 do
          begin
            CurRect.Left := aCols[CurCol + 1] + Round(0.1 * h);
            CurRect.Right := aCols[CurCol + 2] - Round(0.1 * h);
            try
              if CurCol = -1 then

                   CurStr := listview1.Items[CurItem].Caption
              else
                   CurStr := listview1.Items[CurItem].SubItems[CurCol]
            except
              CurStr := ' ';
            end;
            CurLeft := CurRect.Left; // align left side
            // write string in TextRect

            if (CurLine mod 2 = 0) //Abhängig davon, ob Curline gerade oder ungerade
              brush.color = clWhite else //ist, die brush.color des Canvas setzen
              brush.color = clGray;
            FillRect(CurRect); //Dann einfach mal ein gefülltes Rechteck Zeichnen
                                           //ggf. könnten noch Linien für die Zeilentrennung oder
                                           //Spaltentrennung gezeichnet werden

            TextRect(CurRect, CurLeft, CurRect.Top, CurStr);
          end;
Macht den Code zwar nicht besser, aber so würd's gehen.

Aber ich muss allen Anderen hier zustimmen. Teil dir den Code erst mal in Procedure und Funktionen auf, damit er lesbar wird.
Mach dir ne Klasse dafür, dann kannst du die Variablen besser überschauen, weil Sie dann zu der Klasse gehören.

Der Vorteil, nach dem du das in eine Klasse gepackt hast, oder das in Funktionen oder Proceduren aufgeteilt hast, ist, dass du auch genau weißt was du tust und warum, und dir die Frage nach der Position einer solchen Änderung ganz allein beantworten kannst. Abgesehen davon, dass du sie auch leichter wiederfindest
Denn was ich daran sehr zu schätzen gelernt habe, ist die Tatsache, dass man bei späteren Änderungen mit [CTRL]+[linke Maustaste] dann recht schnell in eine verwendete Funktion, eine verwendete Procedure und deren Deklarationen springen kann. Ein Vorteil, der einem nicht nur das Suchen erspart, sondern auch Unmengen an Zeit.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo

Geändert von Captnemo (22. Sep 2014 um 08:17 Uhr)
  Mit Zitat antworten Zitat