Nutzt Du zufällig die JVCL?
Dort gibt es ein TJVDBMaskEdit, in dem Du eine Eingabemaske vorgeben kannst, die dann nur zulässige Eingaben durchlässt.
Alternative:
TDBEdit hat ein OnChange-Ereignis. Das wird immer ausgelöst, wenn man was eingibt.
Eventuell kannst Du ja dort die Länge der Eingabe prüfen und wenn diese 4 übersteigt, automatisch das Komma einfügen oder das Ereignis OnExit des TDBEdit nutzen.
Ansonsten mach' ich Plausiprüfungen immer (oder eher manchmal) im BeforePost-Ereignis des DataSets.
Ganz grob sowas in der Art:
Delphi-Quellcode:
if (Length(DBEdit1.Field.AsString) > 5) and Pos(',',DBEdit1.Field.AsString) = 0) then begin
DBEdit1.Field.AsString := Format('%s,%s',[Copy(DBEdit1.Field.AsString, 1, 4), Copy(DBEdit1.Field.AsString, 5, Length(DBEdit1.Field.AsString)]);
end;