Ну потому, что: 15 не равно 1, значит отрабатывает то что в блоке else.
Вообщем так напишите:
Код:
i:=i+1;
if i=20 then begin
ShowMessage('Лотерея окончена!');
Application.Terminate;
end
else
if strtoint(edit1.text) = i then
ShowMessage('Вы выиграли!!!!! ПОЗДРАВЛЯЕМ! Возьмите свой приз!');
else
ShowMessage('Вы ошиблись! Попробуйте еще!');
ЗЫ Что- то не пойму, студенты if - else как раз сейчас начали изучать или что?