This is a very frequent pattern throughout my code:
SetLength(SomeDynamicArray, Length(SomeDynamicArray)+1); SomeDynamicArray[High(SomeDynamicArray)] := NewE
Starting with Delphi XE7 you can do:
SomeDynamicArray := SomeDynamicArray + [NewElement];
ref: Marco Tech Blog, September 18, 2014 : Dynamic Arrays in Delphi XE7