Ich geb mir die Antwort jetzt selbst ... vielleicht interessiert es ja jemanden ...
... nach längeren Prüfen und Recherieren bin ich folgende Lösung gekommen, möglichweise
gehts auch einfacher ... aber was solls ...
a) ich habe hilfsweise 2 editfelder eingerichtet. (kann ich beim Programmieren besser kontrollieren)
voredit.text & nachedit.text
Diese sind standardmäßig mit "checkOk" vorbesetzt.
Delphi-Quellcode:
procedure TFormx.GridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
Canselect:=prufeEingabe; // prüfroutine ob Eingabe auch ok ist
if trim(voredit.text)<>trim(nachedit.text) then
begin
if canselect=true then
Zellespeichern(grid.col,grid.row);
end;
grid.EditorMode:=false; // der ist wichtig, weil es einen Unterschied macht,
// ob die Zelle verlassen wird bevor <enter> gedrückt wird.
....
end;
procedure TFormx.zelleSpeichern(acol,arow:Integer);
begin
Case acol of
1: Begin
....
End;
2: Begin
....
end;
....
end;
voredit.text:='CheckOk';
nachedit.text:='CheckOk';
end;
procedure TFormx.GridExit(Sender: TObject);
begin
if (trim(voredit.text)<>trim(nachedit.text)) then
begin
if prufeeingabe=false then
begin
grid.SetFocus;
exit;
end
else
Zellespeichern(grid.col,grid.Row);
end;
end;
procedure TFormx.GridGetEditText(Sender: TObject; ACol, ARow: Integer; var Value: String);
begin
if trim(voredit.text)='CheckOk' then
voredit.text:=value;
end;