Попробуй так.
В OnAfterInput(VAR Text : Text[1024]
перенеси
i:= STRLEN(Text);
WHILE i > 0 DO BEGIN
IF NOT (Text[i] IN ['0','1','2','3','4','5','6','7','8','9']) THEN
Text:= DELSTR(Text, i, 1);
i:= i-1;
END;
В OnFormat(VAR Text : Text[1024]
оставь
IF STRLEN(Text) > 1 THEN
Text:= INSSTR(Text, '-(', 2);
IF STRLEN(Text) >= 7 THEN
Text:= INSSTR(Text, ')-', 8);
IF STRLEN(Text) >= 11 THEN
Text:= INSSTR(Text, '-', 12);
IF STRLEN(Text) >= 14 THEN
Text:= INSSTR(Text, '-', 15);