Una primera aproximación dependiendo del comportamiento que necesites podría ser esta:
Código Delphi
[-]
procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
var
edt:TEdit;
pos:integer;
begin
edt := TEdit(Sender);
if (key = VK_DELETE) or (key = VK_BACK) then
exit;
pos := edt.SelStart;
if (Length(edt.Text)=2) or (Length(edt.Text)=5) then begin
if edt.Text[Length(edt.Text) - 1] <> '-' then begin
edt.Text := edt.Text + '-';
end;
end;
edt.SelStart := pos + 1;
end;
En el evento
OnKeyUp del
TEdit.