Led-Pause Pushbutton project

Greetings, as you can see i am new to arduino.

I am trying to create a project with 3 colums of 4 leds in each column. Ιn each column the 4 leds illuminate sequentially as shown in the example below (for time economy I quote only the first column).

Ι want to place a Pushbutton (which will act as a switch)in each column, where when pressed, to hold the led that was lit when the button was pressed and to turn off the rest if it is pressed again to continiue the loop.

I cant find a way to code the button in order to define the active led when pressed and keep it on HIGH and the rest on LOW values

void setup()
{
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
}

void loop()
{
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,LOW);    
delay(500);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
digitalWrite(4,LOW);
digitalWrite(5,LOW);    
delay(500);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
digitalWrite(5,LOW);
delay(500);
digitalWrite(2,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
delay(500);
 }

The first thing to do is to write the code without using delay() because while the delay()s happen you will not be able to do anything else including reading the state of an input.

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

Being aware of and using arrays would also be an advantage

thx for the guidelines