Один из самых простых способов,
Код:
procedure TForm1.Edit1Change(Sender: TObject);
var
N:Integer;
begin
with (Sender as TEdit) do
if TryStrToInt(Text,N) then Tag:=N
else Text:=IntToStr(Tag);
end;
после изменения едита, делаем проверку, является ли веденное значение числом, если да, то сохраняем его в Tag компонента, если нет,
то восстанавливает предыдущее значение из Tag-а компонента в Text.