Hola , también puedes hacerlo de esta forma, para que recorra toda la cadena y te devuelva todas las que encuentra entre - y +.
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
var
texto, textoTmp, cadena : String;
Inicio, Final : Integer;
begin
texto := 'ABCDE-HOLA+FGHIJ-ADIOS+KLMN';
textoTmp := texto;
while Pos('-',textoTmp)>0 do
begin
Inicio := Pos('-',textoTmp);
Final := Pos('+',textoTmp);
cadena:=Copy( textoTmp, Inicio+1, Final-Inicio-1);
textoTmp[Inicio] := '0';
textoTmp[Final] := '0';
showmessage(cadena);
end;
end;
Saluditos