- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 11

Thema: "alias" einer Klassen-Instanz als Verweis auf "echte" Instanz

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #7
    HaWe
    Gast
    nein, oben nicht, aber in loop
    Beim Initialisieren nur auf menu0 initialisiert,
    erst in loop wird testweise actmenu auf menu2 initialisiert.

    - - - Aktualisiert - - -

    moment....

    - - - Aktualisiert - - -

    Code:
    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();
    ergibt jetzt völlig korrekt

    Code:
    0
    0
    >0 .......|
     1 .......|
     2 .......|
     3 .......|
     4 .......|
    
    2
    2
    >0 .......|
     1 .......|
     2 .......|
     3 .......|
     4 .......|
    super, habs kapiert, dankeschön!


    - - - Aktualisiert - - -

    noch ein unerwarteter bug im Programm:
    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);
    bis nach der 1. Zuweisung actMenu=menu0 ist noch alles ok,
    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 .......|
    Geändert von HaWe (07.12.2018 um 17:58 Uhr)

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 01.11.2017, 12:53
  2. RN-LCD-Adapter und lcd_i2c.lib "Lcdpower Alias="
    Von Kugel5 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 7
    Letzter Beitrag: 26.09.2009, 00:00
  3. Antworten: 7
    Letzter Beitrag: 30.12.2007, 17:52
  4. Antworten: 16
    Letzter Beitrag: 07.10.2006, 15:01
  5. Raupenfahrzeug alias "Minehunter"
    Von Defragger im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 79
    Letzter Beitrag: 24.09.2005, 11:59

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress