Pues propongo otra modificación con vuestro permiso:
Código Delphi
[-]
cadena_nueva:=copy(cadena,2,length(cadena)-1);
L:=StrtoIntDef(cadena_nueva,-1);
if L = -1 then
raise Exception.Create('No se ha podido detectar la version de delphi');
Antes se producía una excepción si no se podía convertir un String a Entero, cosa que al usuario final no lo entiende ni le importa. Ahora el mensaje de error queda más claro, y si le tiene que importar

.
Saludos