Hi
Right, so after reading a post from @lar about 'TStringList.Reverse', I decided to implement that feature into '
IStrings', so that the resulting stringlist is a COM-Interface, which means -- you don't have to free it after use...

...
var org, rev: IStringlist;
begin
org:= CreStrings;
org.Add('x'); org.Add('y'); org.Add('z');
{ IStrings doesn't know about IStringlist, so we have to cast the result }
rev:= org.ReverseEx AS IStringlist;
writeln('Original:',lineending,org.Text,'Reversed:',lineending,rev.Text);
/// ADDED 15 minutes later ///
/// or you can just do:
org.ReverseSelf;
writeln('Original reversed:',lineending,org.Text);
end;
So the new version is out now
12.25.11.2025 which adds new features 'ReverseEx' & 'ReverseSelf' to '
IStrings' along with moving the class into the interface section.
The 'ReverseSelf' method was inspired by @Zvoni

@BrunoK brought to my attention, that these 'Reverse' methods don't copy objects

So to remedy that I /
reintroduced/ the 2 existing 'Reverse' methods and changed them slightly, to handle objects, strings and 'Self'.
End-effect: Now they cater for strings & objects properly.

So, Enjoy, have fun & happy coding

Regards Benny