Если хочешь самостоятельно, без использования библиотечных функций, то что-то вроде
const
StrLen = 10;
type
Str = packed array [1..StrLen] of char;
procedure IntToStr(i: integer; var s: Str)
var
neg: boolean;
j: integer;
begin
for j := 1 to StrLen do
s[j] := ' ';
neg := (i < 0);
i = abs(i);
j = StrLen;
repeat
s[j] := chr(i mod 10 - ord('0'));
i := i div 10;
dec(j);
until (i = 0);
if neg then
s[j] := '-';
end;
Набросал прямо здесь, компилировать не пробовал, так что возможны оплошности, проверь сам.
P.S. Кстати, насколько помню, в стандарте от Вирта не было строковых типов, только
packed array of char.