Hola franz, si lo que necesitas es un array dinamico de cadenas, creo que sería mucho mejor qur utilizaras un StringList, ya que justamente es una lista de cadenas, veo también en tu codigo que le pasas una cadena delimitada por ; y despues vas separando para colocarlo en cada posición de tu arreglo, para eso el StringList cuenta con las propiedades delimer (tu delimitador) y delimiterText (la cadena).
Código Delphi
[-]
var
sl : TStringList;
begin
sl := TStringList.Create;
sl.Delimiter:=';'; sl.DelimitedText:='Uno;Dos;Tres;Cuatro;Cinco;Seis';
Saluditos