Danke für die Antworten!
Mach die ganzen if Abfragen in einer Funktion und rufe die im loop auf. Die Resultate speicherst du in globalen bool.
Oder eine Funktion und das Resultat als Rückgabewert.
So ähnlich hatte ich mir das jetzt auch gedacht: Ich schreibe eine Funktion mit vielen If-Statements (welche die Koordinaten zuordnen) und jedes Statement gibt für jede Box einen bestimmten Wert aus, welche ich dann im Hauptprogramm wieder in verschiedene "If-Bäume" unterbringe.
Die If-Bäume wären natürlich auch besser lesbar, wenn ich nicht mit den abstrakten Koordinaten arbeiten müsste.
Das mit dem #define ist eine Schnapsidee.
Sofort wieder vergessen!
Jedes Grafische Element muss seine Ausdehnung und Ort kennen.
Alle grafischen Elemente werden in einer Liste/Baum organisiert.
Bei einem Ereignis, kann man die Liste entlang laufen und jedes einzelne Element
fragen: "Liegt der Punkt in deinem Hüllrechteck?"
Tipp:
Da wir ja Funktionen und Objekte, mit ihren Methoden, haben und auch nutzen können, reicht es, die If Abfrage, die dich ja so stört, nur an einer einzigen Stelle im gesamten Programm zu machen.
Nun ja, da ich ja auch während eines while-Loops, der beim Brauen auch mal längere Zeit läuft den Touchscreen verwenden möchte und ich auch vor habe einen Setup Mode zu integrieren, der es ermöglich die einzelnen Buttonfunktionen ohne PC zu konfigurieren muss dies schon öfters abgefragt werden.
Aber ihr habt mich auf jeden Fall schon mal zum umdenken gebracht, vielleicht klappt es ja doch über eine Funktion.
Ja, es gibt auch funktionsähnliche Makros mit Parametern, die der Präprozessor verarbeiten kann.
Du mußt Dir aber immer darüber im klaren sein, dass die Expansion von Präprozessor-Makros VOR dem eigentlichen Kompiliervorgang stattfindet und nicht erst im laufenden Programm. Daher sind die Makro-Funktionen keine "echten" Funktionen, Du kannst also beispielsweise keine Typen für die Parameter vorgeben, sondern das Makro arbeitet mit den Parametertypen, mit denen Du das Makro aufrufst.
Ja genau, so etwas meine ich.
Es soll einfach ein Schlagwort im Code durch etwas von mir Vorgegebenem ersetzt werden.
Das Einzusetzende ist nicht variabel, es wäre konstant.
Nur leider ist mir nicht klar, mit welchem Datentyp, oder wie auch immer ich die IDE beispielsweise dazu bewegen kann beim Kompilieren, das Schlagwort "
Button03Coordinates" durch "
touchX >= 30 && touchX <= 60 && touchY >= 50 && touchY <= 80" zu ersetzen.
Hätte ich einen einfach Wert zum Einsetzen, würde ich das einfach mit #define bzw. const machen, aber ich hab ein Argument.
Theoretisch könnte ich das natürlich auch per Hand vor dem Kompilieren über die Finden/Ersetzen Funktion der IDE machen.
Oder einfach hardcoden, aber gibt es eben für so, ich nenne es jetzt mal "Autoersetzen" keine einfache Möglichkeit in C (bzw. vielmehr der Arduino IDE)?
Aber echt schon mal danke für die Antworten, lösen kann ich es jetzt auf jeden Fall schon mal.
