Hy,
Es wurde jetzt schon mehrfach darauf hingewiesen das eine Schleife an dieser Stelle unnötig ist.
Setz doch einfach mal einen Breakpoint in der procedure und sieh dir an wann diese aufgerufen wird
-> unzwar für jede Zelle 1 mal
Das heisst das du jedesmal wenn eine Zelle gezeichnet wird, in deiner Schleife das komplette Grid durch gehst!
Um die Fehlermeldung zu vermeiden, darfst du die erste Zeile(0) nicht mit verarbeiten:
Delphi-Quellcode:
procedure TFRechnung.AdvStringGrid3GetCellColor(Sender: TObject; ARow, ACol: Integer; AState: TGridDrawState; ABrush: TBrush; AFont: TFont);
var
Datumrechnung, Datumrechungfaellig: TDate;
begin
if ARow <> 0 then // Die Kopfzeile nicht prüfen
begin
Datumrechnung := StrToDate(AdvStringGrid3.Cells[9, ARow]);
Datumrechungfaellig := StrToDate(AdvStringGrid3.Cells[11, ARow]);
if Datumrechungfaellig = Datumrechnung + 14 then
ABrush.color := clred;
end;
end;