Hallo,
ich weiß, wie man Zeilen eines Grids abwechselnd färbt, aber wie mach ich das Blockweise?
Ich habe ein Grid, wo immer mehrere Zeilen untereinander zu einem Vorgang gehören, jede Zeile hat eine eigene ID und mehrere Zusammen / Hintereinander die selbe VorgangsID. Unterschiedlich viele Zeilen gehören so zusammen.
Dementsprechend ist die Datenmenge sortiert nach "Order by VorgangsID, ID".
Jetzt möchte ich, dass das Grid nicht nach jeder Zeile sondern nach jedem Vorgang die ID wechselt. Aber wie mach ich das?
Was nicht klappt
Delphi-Quellcode:
// im OnOwnerDrawCell
if GridIDChangeDetected then
SwitchGridColor;
SetLastGridID;
// usw.
procedure TCheckdaten.SwitchGridColor;
begin
if CurrentGridColor=Color1 then
CurrentGridColor:=Color2
else
CurrentGridColor:=Color1;
end;
procedure TCheckdaten.SetLastGridID;
begin
Last_VG_ID:=Quelle.FieldByName('VG_ID').AsInteger;
end;
function TCheckdaten.GridIDChangeDetected:Boolean;
begin
Result:=Last_VG_ID<>Quelle.FieldByName('VG_ID').AsInteger;
end;
Irgendwie hab ich naiv angenommen, dass beim Zeichnen des Grids die
Query einmal durchlaufen wird und das dann so funzt. Aber dem ist wahrscheinlich nicht so.