Flickering OLED

OK You win @UKHeliBob :wink:

anyway I´d like to show you a display design which I shortly created:

void showMonth()
{  
   tft.fillScreen(bkCol[colors]);
   tft.fillRect(20,20,200,212,fgCol[colors]);
   tft.setFont(&FreeSerifBold24pt7b);
   tft.setTextSize(4);
   tft.setTextColor(txCol[colors]);
   tft.setCursor(25,186);
   if(rtc.getDay() < 10) {tft.print("0");} 
   tft.print(rtc.getDay());

   tft.setFont(&FreeSerifBold12pt7b);
   tft.setTextSize(1);
   tft.setTextColor(txCol[colors]);
   tft.setCursor(30,46);
   tft.print(WeekDay[rtc.getDayofWeek()]); 
   tft.setCursor(25,222);
   //if(rtc.getMonth() > 7) {tft.setFont(&FreeSerifBold12pt7b);}
   tft.print(TextMonth[rtc.getMonth()]);
}  
 
void showTime()
 {  
   tft.fillRect(20,250,200,50,tgCol[colors]);
   tft.setFont(&FreeSerifBold12pt7b);
   tft.setTextSize(1);
   tft.setTextColor(txCol[colors]);
   tft.setCursor(30,290);
   tft.setTextSize(2);

   if ((rtc.getHour(true)) < 10){tft.print("0");}
   tft.print(rtc.getHour(true));
   tft.print(":");
   if ((rtc.getMinute()) < 10){tft.print("0");} 
   tft.print(rtc.getMinute());
   tft.print(":");
   if ((rtc.getSecond()) < 10){tft.print("0");}
   tft.print(rtc.getSecond());
   tft.print("  ");
}

the colors are defined before setup routine and can change on pressing a button

if you like to see the whole code just tell me. I know it is improvable anyway but may show how to avoid flickering