/*
Beispiel für
https://forum.arduino.cc/t/tft-input-placeholder/1107597
2023-03-29
ec2021
*/
#include "TFTCursor.h"
#include <Fonts/FreeSans12pt7b.h>
#include <Fonts/FreeSans24pt7b.h>
#define LEFT 20
#define TOP 100
CursorType myCursor;
void Print(String txt, int atX, int atY, int tSize, uint16_t col){
tft.setCursor(atX, atY);
tft.setTextColor(col);
if (!myCursor.FixedFontInUse) tSize = 1;
tft.setTextSize(tSize);
tft.println(txt);
//myCursor.setAll(atX, atY,col, tSize, 0); // oder einzeln:
myCursor.setCursor(atX, atY);
myCursor.setTextColor(col);
myCursor.setTextSize(tSize);
myCursor.setBlinkTime(500);
};
int Stelle = 0;
int count = 1;
int textSize = 1;
String txt = "12034";
unsigned long lastChange = 0;
void setup() {
Serial.begin(115200);
Serial.println("Start ...");
tft.begin();
tft.setRotation(0);
tft.setFont(&FreeSans24pt7b);
myCursor.FixedFontInUse = false;
Print(txt,LEFT, TOP, textSize, ILI9341_RED);
}
void t(){
int16_t x1, y1;
uint16_t w, h;
tft.getTextBounds("0", LEFT, TOP, &x1, &y1, &w, &h);
Serial.println("w = "+String(w)+" h = "+String(h));
// tft.fillRect(x1,y1,w,h,ILI9341_YELLOW);
tft.drawRect(x1,y1,w,h,ILI9341_YELLOW);
}
/*
Blink(int Stelle, String txt)
Anfang des Blinkstreifens über Stelle im txt
und den Befehl tft.getTextBounds(txt, 80, 80, &x1, &y1, &w, &h);
ermitteln
*/
void loop() {
myCursor.Blink(Stelle);
if (millis()-lastChange > 3000){
lastChange = millis();
Stelle++;
if (Stelle == 2) Stelle++; // Hier ist der Doppelpunkt
if (Stelle > 4) Stelle = 0;
count++;
if (!(count % 5)) {
Print("00:00",LEFT, TOP, textSize, ILI9341_BLACK);
textSize++;
if (textSize > 6) textSize = 1;
Stelle = 0;
count = 1;
if (textSize < 3) Print(txt,LEFT, TOP, textSize, ILI9341_RED);
else Print(txt,LEFT, TOP, textSize, ILI9341_YELLOW);
}
}
}