For loop not incrementing - Led Strip

If I understand correctly, you would typically use a delay at the end of the for loop to control the timing of the for loop.

I have instead tried to use millis to control the timing (incorrectly). Is it possible to use millis to control the timing of a for loop, how would you go about this? or is there a different method to control the timing of a for loop (other than delay)?

Why use a for loop when the loop() function is doing what its name implies ?

start of loop()
  current time = millis()
  if it is time to display the LEDS
    set boolean updatingLeds to true to start
    save current millis() as start time
    set currentLed to zero
  end if

  if updateLeds is true
    updateLeds();
  end if
end of loop()

start of updateLeds
  if currentTime - start time >= period
    increment currentLed
    turn on currentLed
    save current time as start time
  end if
end of updateLeds

Have you read Using millis() for timing. A beginners guide, Several things at the same time and looked at the BlinkWithoutDelay example in the IDE.