Hola lucas.
Creo que te va a resultar mucho mas sencillo usar un
TMaskEdit, por ejemplo para tu caso:
Código Delphi
[-]
procedure TForm1.FormCreate(Sender: TObject);
begin
MaskEdit1.EditMask:= '99-999-9;1; '; end;
Si luego deseas el resultado sin los guiones, podes hacer:
Código Delphi
[-]
var
str : string;
begin
str := StringReplace(MaskEdit1.Text, '-', '', [rfReplaceAll]);
...
Saludos.