Replacing 'delay' with 'millis' for scrolling LCD display

#include <Wire.h>
#include <hd44780.h>                       // main hd44780 header
#include <hd44780ioClass/hd44780_I2Cexp.h> // i2c expander i/o class header

hd44780_I2Cexp lcd; // declare lcd object: auto locate & config exapander chip

// LCD geometry
const int LCD_COLS = 16;
const int LCD_ROWS = 2;

#include <Keypad.h>

const byte ROWS = 4; //four rows
const byte COLS = 4; //three columns
char keys[ROWS][COLS] = 
{
  {'1', '2', '3', 'A'},
  {'4', '5', '6', 'B'},
  {'7', '8', '9', 'C'},
  {'*', '0', '#', 'D'}
};
byte rowPins[ROWS] = {6, 7, 8, 9}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {5, 4, 12, 11}; //connect to the column pinouts of the keypad

Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
bool a = true;

void setup()
{
  Serial.begin(115200);
  lcd.begin(LCD_COLS, LCD_ROWS);
  lcd.setCursor(3, 0);
  lcd.print("  PRIYA");
  lcd.setCursor(3, 1);
  lcd.print("ELECTRONICS");
  delay(100);
  for (int positionCounter = 0; positionCounter < 40; positionCounter++)
  {
    lcd.scrollDisplayLeft();
    delay(120);
  }
  delay(800);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Set Count:");
}

//unsigned long total;
void loop()
{
  const byte entryMaxSize = 5;
  static char digits[entryMaxSize + 1];
  static byte x; // index

  char key = keypad.getKey();

  if (key != NO_KEY) // Check for a valid key.
  {
    switch (key)
    {
      case 'A':
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Set Count:");
        x = 0; // reset the counter
        a = true;
        break;

      case 'D':
        if (a) 
        {
          if (x == 0)
          {
            invalidCount();
          }
          else 
          {
            lcd.clear();
            lcd.print("Count Set:");
            for (byte i = 0; i < x; i++) 
            {
              lcd.print(digits[i]);
              a = false;
            }
             unsigned long count = atol(digits);
             Serial.print(count);
          }
        }
        break;

      default:
        if (a)
        {
          // if not 5 characters yet
          if (x < entryMaxSize)
          {
            // add key to userinput array and increment counter
            if ( key >= '0' && key <= '9' ) // key is of type char and has a value between 0 and 9 so do something with it.
            {
              digits[x++] = key;
              digits[x] = '\0';
              lcd.print( key ) ;  // new print statement <<<<<<<<<<<<<<<<
              //total = ((count[ 0 ] - '0') * 10000UL  + (count[ 1 ] - '0') * 1000 + (count[ 2 ] - '0') * 100 + (count[3] - '0') * 10 + (count[4] - '0'));
            }
          }
          else 
          {
            countWarning();
          }
        }
        break;
    }
  }
}

void invalidCount()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Invalid Count!!");
  lcd.setCursor(0, 1);
  lcd.print("Press A"); // suggesting the user to enter the count again
  a = false;
}

void countWarning()
{
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("5 Digits Only!!"); // warning for the user if more than permitted digits are entered
  lcd.setCursor(0, 1);
  lcd.print("Press A"); // suggesting the user to enter the count again
  a = false;
}

Is there a question?

Yes, I'm not sure how to do it in my case. Thanks.

Since the scrolling only happens in setup(), what is the problem with using delay() there? Presumably, you don't want setup() to end until the scrolling finishes.

PaulS:
Since the scrolling only happens in setup(), what is the problem with using delay() there? Presumably, you don't want setup() to end until the scrolling finishes.

So there's no need for me to use millis()?

GautamD:
So there’s no need for me to use millis()?

You’d have to tell us what you think you need it for.

PaulS:
You'd have to tell us what you think you need it for.

Actually I saw a few codes where the millis() function was used to scroll the display instead of a regular 'delay'. Hence I thought I must use it too.

Do I really need to use it or delay is fine for me?

Do I really need to use it or delay is fine for me?

If the scrolling happens correctly, AND you want setup() to not end before the scrolling is complete, then using delay() is fine.

PaulS:
If the scrolling happens correctly, AND you want setup() to not end before the scrolling is complete, then using delay() is fine.

Delay works fine for me. Thank you!