The compiler, logically enough, thinks that you're trying to add a dynamic array and a set (as deduced from the construct:
[i]) and she doesn't know how to do that.
What you should write instead depends on what you want to do with such exotic sintax: if, as seems logical, you want to append the integer as the last element of the array, do something like:
var
EList: array of integer;
i, Last: integer;
begin
// ......
Last := Length(EList);
SetLength(EList, Last+1)
EList[Last] := i;
end;
If you really wish I guess you could overload the + operator to do that:
{ COMPLETELY UNTESTED!!!
Might need some (re)work ...}
type
TIntArray = array of Integer;
operator + (a: TIntArray; i: integer): TIntArray;
begin
Result := a;
SetLength(Result, Length(a)+1);
Result[High(Result)] := i;
end;
{...}
{ now you should be able to do ...}
var
EList: array of integer;
i: integer;
begin
// ......
EList += i;
end;
though I wouldn't recommend it. IMHO, it looks really ...
outrê If what you want to do is some other thing, please explain with a little more detail ...