Скорее всего виноват "вырезанный" код, видимо время его исполнения больше, чем интервал таймера. Ну и для безопасности надо делать так:
Код:
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Timer1.Ebabled := False;
Try
Inc(icount); // До этого использовалось icount:=icount + 1
ShowMessage('icount: ' + IntToStr(icount));
// некий код, который к данному вопросу не имеет отношения и лишь считывает значение icount
Finally
Timer1.Enabled := icount < idris;
Endl
end;