Moin
Ich hab da ein Problemchen mit der darstellung meines Stringgrids. Ich hab ein StringGrid, welches ausgedruckt werden soll. Dabei soll es folgende Form haben:
Die erste Zeile ist der jeweilige Spaltenkopf. Dieser ist als FixedRow definiert. In den Eigenschaften des StringGrid habe ich unter Options alle Werte auf false gesetzt, ausser 'goFixedHorzLine'. Diese Eigenschaft ist auf True gesetzt. Dadurch ist der Spaltenkopf von den anderen Zeilen durch eine Linie getrennt.
In den weiteren Zeilen sollen jetzt die Werte der verschiedenen Datensätze wiedergegeben werden. Diese sollen nicht durch Linien getrennt werden.
Die letzte Zeile soll die Gesamtsumme der Spalten wiedergeben. Diese letzte Zeile soll wiederum durch eine Linie von dem mittleren Zellblock getrennt werden.
Vertikale Linien sind immer ausgeblendet.
Die Berechnungen für die einzelnen Zellen funktionieren, nur halt die Linie zwischen mittleren Zellblock (vorletzter Zeile) und der Letzten Zeile ist nicht zu sehen.
Ich hab dafür folgenden Quelltext benutzt:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| ARow:= AnzDatenSaetze; if (ARow = AnzDatenSaetze) and not (gdFixed in State) then begin with (sender as TStringGrid).canvas do begin Pen.Color := clBlack; Pen.Width := 2; Pen.Style := psSolid; MoveTo(rect.left-1, rect.top); Lineto(rect.right-1, rect.top); end; end; |
Mein Programm hängt sich dann auf wenn es in die if-Schleife geht und sich an dem Punkt der With-Klausel befindet. Ich erhalte dann einen Fehler der Klasse EInvalidCast.
Habt ihr irgendeine Ahnung was bei meinem Quelltext nicht so richtig stimmt? Oder hab ich noch irgendeine Einstellung vergessen? Wäre nett wenn ihr mal drüber schauen könntet!
Danke schonmal...
MfG andy