Hallo,
Zitat:
[...] Das Ganze wäre besser dann durchzuführen, wenn der Editiervorgang beendet ist [...]
Würde ich auch so sehen - und wohl auch so machen -, aber Dein Problem erschließt sich mir nicht so ganz.
Zitat:
[...] Und mir fällt nun nichts ein, wo man da eingreifen könnte
Naja, wie wäre es denn mit OnDrawCell? Den entsprechenden Zustand vorher merken und beim Neuzeichnen aktualisieren:
Delphi-Quellcode:
procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);
begin
if FModified and (ACol = FSaveCol) and (ARow = FSaveRow) then
begin
StringGrid1.Cells [ACol, ARow] := IntToStr (StrToInt (StringGrid1.Cells [ACol, ARow]) - StrToInt (FSaveValue));
FModified := False
end
end;
procedure TForm1.StringGrid1GetEditText(Sender: TObject; ACol, ARow: Integer; var Value: string);
begin
FSaveCol := ACol;
FSaveRow := ARow;
FSaveValue := Value
end;
procedure TForm1.StringGrid1SetEditText(Sender: TObject; ACol, ARow: Integer; const Value: string);
begin
FModified := FSaveValue <> Value
end;
Oder verstehe ich da was falsch?
Gruß