گاهی اوقات نیاز میشود که حلقه ای برعکس شرایط عادی ، یعنی کاهشی بنویسم.
برای مشخص نمودن افزایشی یا کاهشی بودن for از دو کلمه ی کلیدی to برای افزایشی کردن حلقه و downto برای کاهشی کردن حلقه استفاده می گردد.

توضیح: حلقه ی افزایشی به حلقه ای گفته می شود که در آن مقدار اندیس حلقه در هر بار تکرار حلقه افزایش می یابد ولی حلقه ی کاهشی در هر تکرار حلقه مقدار اندیس حلقه را کاهش می دهد.
افزایشی
for variable := start to finish do

// code

مثال :
for i := 0 to  10 do
Memo1.Lines.Append(IntToStr(i));

کاهشی :
for variable := start downto  finish do

// code

مثال :
for i := 10 downto  0 do
Memo1.Lines.Append(IntToStr(i));