Ага! кнопка "Ресет" это вообще зло и давить ее нужно в исключительных случаях (зависания программы). А для оперативного сброса стоит использовать функциональную кнопку с прицепленным к ней кодом корректной инициализации.

Но с другой стороны, ретайн переменная должна инициализироваться при замене а не сбросе программы!!! Попробуйте свой счетчик (i) поместить в область глобальных переменных, должен будет, по идее, сохраняться.

А про инициализацию... она проходит, если софт ее решил выполнить, по любому... или вашим значением или нулевым, если значение не указано явно.