Les comparto un código que ayuda a insertar una subcadena en una cadena en cada una de n número de posiciones definidas mediante un arreglo...
Ojalá les sirva y claro que se aceptan sugerencias y mejoras....

Saludox !

function InsertaSubCadena(Cadena, Simbolo: String; Posicion: Array of Integer): String; var sTemp, sDerecha, sIzquierda: String; i, iTamano: Integer; begin sTemp:= Cadena; for i := 0 to Length(Posicion) - 1 do begin sIzquierda := AnsiMidStr(sTemp,1,((Posicion[i]+i)-1)); iTamano := Length(sTemp); sDerecha := AnsiRightStr(sTemp,(iTamano-(Posicion[i]+I))+1); sTemp := sIzquierda+Simbolo+sDerecha; end; Result := sTemp; end;
Y se usa de la siguiente manera:
Label.Caption := InsertaSubCadena('DELPHIACCESS.COM','-',[2,3,5,7]);
Resultado: D-E-LP-HI-ACCESS.COM