ну у тебя 8 строк, у меня 10...разницы никакой...
посмотри как эта функция работает в модуле StrUtils
Код:
function ReverseString(const AText: string): string;
var
I: Integer;
P: PChar;
begin
SetLength(Result, Length(AText));
P := PChar(Result);
for I := Length(AText) downto 1 do
begin
P^ := AText[i];
Inc(P);
end;
end;
Подавляющее большинство функций делфи построены на операторах ObjectPascal...просто где то дополнены WinAPI...и совсем редко ассембрерными вставками...