Du solltest das etwas anderst machen.
Die Prüfung muss am Dataset ansetzen, nicht am DBGrid.
Delphi-Quellcode:
TForm1.Table1BeforePost(Dataset:TDataset);
var
gender:
string;
begin
gender := AnsiUpperCase(DataSet.FieldByName('
Gender').AsString);
if (gender = '
')
or not (gender[1]='
M'
or gender[1]='
F')
then
raise Exception.Create('
Ein Mensch kann nur (M)ann oder (F)rau sein.');
// oder (Z)witter :-)
// hier wäre auch die Gelegenheit das M/F als Großbuchstaben zurück aufs Feld zu schreiben
DataSet.FieldByName('
Gender').AsString := gender;
end;