А я бы сделал так:<pre>const ar: array[‘0‘..‘1‘, ‘0‘..‘1‘, ‘0‘..‘1‘] of char = (((‘0‘, ‘1‘), (‘2‘, ‘3‘)), ((‘4‘, ‘5‘), (‘6‘, ‘7‘)));var q,s: string; i,j: integer;begin s := Edit1.Text; if (length(s) mod 3) <> 0 then s := ‘0‘ + s; if (length(s) mod 3) <> 0 then s := ‘0‘ + s; for i := length(s) downto 1 do begin j := i*3; q := q + ar[s[j-2], s[j-1], s[j]]; end;end;</pre>Триады не передаются функции а прямо преобразовываются в нужные символы через массив.