Delay whit cancel

delay(12000);

The delay() function prevents the Arduino from doing everything. It can't read other buttons or respond in any way until that delay has finished.

boolean delayWithCancel(unsigned long duration) {
  unsigned long start = millis();
  while(millis()-start < duration) {
    if(digitalRead(Button1)==LOW) return true;
    if(digitalRead(Button2)==LOW) return true;
    if(digitalRead(Button3)==LOW) return true;
    if(digitalRead(Button4)==LOW) return true;
  }
  return false; //action wasn't cancelled
}
void loop() {
  if(delayWithCancel(12000)) Serial.println("Cancel button pressed!");
}