ну у тебя 8 строк, у меня 10...разницы никакой...
посмотри как эта функция работает в модуле StrUtils
	Код:
	| 1 2 3 4 5 6 7 8 9 10 11 12 13 | functionReverseString(constAText: string): string;
 var
   I: Integer;
   P: PChar;
 begin
   SetLength(Result, Length(AText));
   P := PChar(Result);
   forI := Length(AText) downto1do
   begin
     P^ := AText[i];
     Inc(P);
   end;
 end;
 | 
 
Подавляющее большинство функций делфи построены на операторах ObjectPascal...просто где то дополнены WinAPI...и совсем редко ассембрерными вставками...