Код:
procedure TForm1.Lat1Change(Sender: TObject);
var a: string;
begin
a:= Lat1.Text;
if a[1] = ' ' then a[1]:= '0';
if a[1] = '9' then a[2]:= '0';
if a[4] > '6' then a[4]:= '6';
if a[4] = '6' then a[5]:= '0';
if a[4] = '6' then a[7]:= '0';
Lat1.Text:= a;
end;
procedure TForm1.Lat1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'0'..'9', 'N', 'n', 'S', 's': exit;
else
key:=#0;
end;
end;
В такой связке всё работает как надо.