TDBGrid-Zeilen unterschiedlich färben und TTable
16. Okt 2003, 11:18
Moin zusamm
folgender Code unter GridDrawColumnCell
If ((Table.RecNo mod 2) = 0) then begin
Grid.Canvas.Brush.Color := clSkyBlue;
Grid.DefaultDrawColumnCell(Rect, 0, Column, State);
end;
sollte ja eigentlich jede 2. Zeile des Grid´s in ein zartes Blau tauchen.
Ich hab für meine Table aber 2 Indizes, einmal für ein Textfeld, einmal für ein Zahlenfeld (beide Unique).
Setzte ich den Index der Table auf mein Zahlenfeld, woraufhin die Table nach diesem Zahlenfeld der Datenbank sortiert wird, funktioniert die Färbung korrekt (jede 2. Zeile vom Grid)
Nehm ich als Index das Textfeld, woraufhin die Table nach dem Textfeld sortiert wird, werden die Felder wild durcheinander blau eingefärbt, aber nicht wie es eigentlich sein sollte, jedes 2.
Im Klartext: Die Färbung der Zeilen geht offensichtlich nicht nach der tatsächlichen sichtbaren Position der Zeile im Grid, sondern vielmehr der realen Position in der Datenbank aufgrund des Zahlen-Indizes.
Nur zum Verständnis: Will ich eine Aufwärts-Sortierung der Table erreichen, wechsel ich den Index, oder gibt´s da noch andere Möglichkeiten? Denn nur aus dem Grund wechsel ich die Indizes zur RunTime, weil ich ein anderes zu sortierendes Feld auswähle.
Wenn das Grid die Daten aus einer TQuery-Komponente anzeigt, funktioniert das ganze übrigens wunderbar, egal nach welchem Datenfeld ich sortiere!
Weiß einer Abhilfe oder Rat?
mfG
|