nein, oben nicht, aber in loop
Beim Initialisieren nur auf menu0 initialisiert,
erst in loop wird testweise actmenu auf menu2 initialisiert.
- - - Aktualisiert - - -
moment....
- - - Aktualisiert - - -
ergibt jetzt völlig korrektCode:tMenu menu0(10,20, 0); // numEntries, lineLength, menuID; tMenu menu02(10,20, 2); tMenu & actMenu = menu0; tMenu & preMenu = menu0; void setup() { menu0.init(); // optional numVisibleLines, fontHeight; defaults = (5,13) Serial.println(menu0.ID); Serial.println(actMenu.ID); actMenu.mdisplay(); actMenu = menu02; // test actMenu.init(); Serial.println(menu02.ID); Serial.println(actMenu.ID); actMenu.mdisplay();
super, habs kapiert, dankeschön!Code:0 0 >0 .......| 1 .......| 2 .......| 3 .......| 4 .......| 2 2 >0 .......| 1 .......| 2 .......| 3 .......| 4 .......|
- - - Aktualisiert - - -
noch ein unerwarteter bug im Programm:
bis nach der 1. Zuweisung actMenu=menu0 ist noch alles ok,Code:tMenu menu0(10,20, 0); // numEntries, lineLength, menuID=0; tMenu menu02(10,20, 2); // numEntries, lineLength, menuID=2; tMenu & actMenu = menu0; tMenu & preMenu = menu0; void init() { // display.setFont(&FreeMono9pt7b); // h=13.10pt display.clearDisplay(); display.display(); Serial.println("Menu 0+02 init:"); menu0.init(); strcpy(menu0.list[0], " menu0"); Serial.print("menu0.ID="); Serial.println(menu0.ID); //<<<<<<<<<< stimmt noch !! menu02.init(); strcpy(menu02.list[0], " menu02"); Serial.print("menu02.ID="); Serial.println(menu02.ID); //<<<<<<<<<< stimmt noch !! Serial.println(); Serial.println("actMenu-Zuweisungen:"); Serial.println(); actMenu=menu0; Serial.println("actMenu=0"); Serial.print("menu0.ID="); Serial.println(menu0.ID); // noch ok Serial.print("menu02.ID="); Serial.println(menu02.ID); Serial.print("actMenu.ID="); Serial.println(actMenu.ID); actMenu.mdisplay(); // noch ok Serial.println("actMenu=02"); actMenu = menu02; // test Serial.print("menu0.ID="); Serial.println(menu0.ID); // Fehler Serial.print("menu02.ID="); Serial.println(menu02.ID); Serial.print("actMenu.ID="); Serial.println(actMenu.ID); actMenu.mdisplay(); Serial.println("actMenu=0"); actMenu = menu0; // und wieder zurück Serial.print("menu0.ID="); Serial.println(menu0.ID); // Fehler Serial.print("menu02.ID="); Serial.println(menu02.ID); Serial.print("actMenu.ID="); Serial.println(actMenu.ID); // Fehler actMenu.mdisplay(); // Fehler delay(1);
nach der Neuzuweisung actMenu=menu02 ist der Inhalt von Original-menu0 überschrieben:
Code:Menu 0+02 init: menu0.ID=0 // ok! menu02.ID=2 // ok! actMenu-Zuweisungen: actMenu=0 menu0.ID=0 // ok! menu02.ID=2 actMenu.ID=0 > menu0 // ok 1 .......| 2 .......| 3 .......| 4 .......| actMenu=02 menu0.ID=2 // Fehler! menu02.ID=2 actMenu.ID=2 > menu02 // ok 1 .......| 2 .......| 3 .......| 4 .......| actMenu=0 menu0.ID=2 // Fehler! menu02.ID=2 actMenu.ID=2 // Fehler! > menu02 // Fehler! 1 .......| 2 .......| 3 .......| 4 .......|







Zitieren

Lesezeichen