How to stop LCD display from scrolling after a press of a button?

hey, i have just started a project in which i have written and advertisement and it is set to scroll from the right to left but i want the scrolling to stop after a button press, can you please tell me how i can do this. this is the code for now. ( I haven’t added the button Pin yet i will do so tomorrow).

#include <LiquidCrystal.h>
LiquidCrystal lcd (7,8,9,10,11,12);

char * LargeText = " Anonyomus Panda";
int iLineNumber = 1;
int iCursor = 0;

void setup()
{
  lcd.begin(16,2);
  lcd.setCursor (1,0);
  lcd.print ("Family Members");
}
void loop()
{
 UpdateLCDDisplay();
 delay(350);

}

void UpdateLCDDisplay()
{
  int iLenofLargeText = strlen(LargeText);
  if ( iCursor==(iLenofLargeText - 1))
  {
    iCursor = 0;
  }
  lcd.setCursor(0, iLineNumber);
  if ( iCursor < iLenofLargeText -16)
  {
    for ( int iChar = iCursor; iChar < iCursor + 16; iChar++)
    {
      lcd.print( LargeText[iChar]);
    }
  }
  else
  {
    for ( int iChar = iCursor; iChar <(iLenofLargeText -1); iChar++)
    {
      lcd.print (LargeText[iChar]);
    }
    for (int iChar = 0; iChar <= 16 - (iLenofLargeText - iCursor); iChar++)
     {
      lcd.print (LargeText[iChar]);
    }
  }

  iCursor++;
}

I think that this fulfills your requirement. Note the use of millis() for timing* and no delay(). Also fixed one warning. Button connected one side to ground the other to pin 4 set to pinMode INPUT_PULLUP.

#include <LiquidCrystal.h>
LiquidCrystal lcd (7, 8, 9, 10, 11, 12);

const byte buttonPin = 4;
const char * LargeText = " Anonyomus Panda";  // fix a warning with const
int iLineNumber = 1;
int iCursor = 0;
bool useDisplay = true;

void setup()
{
   Serial.begin(115200);
   pinMode(buttonPin, INPUT_PULLUP);
   lcd.begin(16, 2);
   lcd.setCursor (1, 0);
   lcd.print ("Family Members");
}
void loop()
{
   static unsigned long timer = 0;
   unsigned long interval = 300;
   if (millis() - timer >= interval && useDisplay == true)
   {
      timer = millis();
      UpdateLCDDisplay();
   }
   if (digitalRead(buttonPin) == LOW)
   {
      useDisplay = false;
   }
   else
   {
      useDisplay = true;
   }

}

void UpdateLCDDisplay()
{
   int iLenofLargeText = strlen(LargeText);
   if ( iCursor == (iLenofLargeText - 1))
   {
      iCursor = 0;
   }
   lcd.setCursor(0, iLineNumber);
   if ( iCursor < iLenofLargeText - 16)
   {
      for ( int iChar = iCursor; iChar < iCursor + 16; iChar++)
      {
         lcd.print( LargeText[iChar]);
      }
   }
   else
   {
      for ( int iChar = iCursor; iChar < (iLenofLargeText - 1); iChar++)
      {
         lcd.print (LargeText[iChar]);
      }
      for (int iChar = 0; iChar <= 16 - (iLenofLargeText - iCursor); iChar++)
      {
         lcd.print (LargeText[iChar]);
      }
   }
   iCursor++;
}

*Non-blocking timing tutorials:
Several things at a time.
Beginner’s guide to millis().
Blink without delay().

Thanks @groundFungus it works