Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - FAQ - Zum CC1-Forum - Zum CC-Pro-Forum

Wichtig: Bevor Du wegen einem Problem mit der CC2 postest, stelle sicher, daß Du
die neueste OS-Version, die neuseste Compiler-DLL und die neuesten Modulversionen benutzt!
Beachte, daß sich auf der CD zur CC2-Unit/Station auch jetzt noch die ältesten Dateien befinden!
Es gelten folgende Anleitung und Regeln: Regeln CC2Net.de-Forum
Zurück zum Artikel  (Blaue Felder sind Pflichtfelder)


Name:   UserID: 
 E-Mail:
Kategorie
Betreff
Homepage:
Link-Titel:
Link-URL:
Cookie für Name, UserID, E-Mail, Homepage-URL setzen
(Erspart die Neueingabe bei Beiträgen und Antworten)
(Zum Löschen des Cookies hier klicken)
Ich nutze:
C-Control II Unit
C164CI-Controllerboard
C-Control II Station
CCRP5 mit CC2-Unit (Conrad Roboter)
CC2-Application-Board
CC2-StarterBoard
CC2-ReglerBoard
eigenes Board
original OS     OSOPT_V2     OSOPT V3.0 OSOPT V3.1

Kommentar:
Einfügen von HTML im Kommentar:

Link einfügen: <a href="LINKURL" target="_blank">LINKTITEL</a>
Bild einfügen: <img src="BILDURL">
Text formatieren: <b>fetter Text</b>  <i>kursiver Text</i> <u>unterstrichener Text</u>
Kombinationen sind auch möglich z.B.: <b><i>fetter & kursiver Text</i></b>
C2 Quellcode formatieren: <code>Quellcode</code>
ASM Quellcode formatieren: <asm>Quellcode</asm>
(Innerhalb eines Quellcodeabschnitts ist kein html möglich.)
Wichtig: Bitte mache Zeilenumbrüche, bevor Du am rechten Rand des Eingabefeldes ankommst !  

> Hallo Steffan, > ich kenne keine funktion wie Array.lenght in c2 die du hier benötigst um die vom > compiler bestimmte Länge zu ermitteln. > Aber programatisch könnte man es entweder durch eine spezielle array end Markierung lösen (z.B. "-1"), > bis zu welcher deine Schleife dann läuft. > In meiner Haussteurung habe ich die gesamte Menü Darstellung und Navigation allerdings sehr generisch > gelöst. Dort exisistieren mehrere grosse arrays, die menu-item tags, typen, ressourcen > und unter menü-strukturen definieren. > Die algorithmen sind generisch und rekursiv, so dass sich (theoretisch) beliebig tiefe menü > strukturen aufbauen lassen. Die array Konstanten sehen dann so aus: > > <code> > const MENU_TAGS[] = "Hauptmenü", // 0 > "untermenü1", // 1 > "untermenü2", // 2 > > const MENU_TYPE[] = MENUITEM_SUBMENU, //0 > MENUITEM_SUBMENU, //1 > MENUITEM_SUBMENU, //2 > > const MENU_RESOURCES[]= 0, //0 > 0, //1 > 0, //2 > 0, //3 > > const MENU_SUBSTART[] = 1, //0 > 10, //1 > 20, //2 > > const MENU_SUBEND[] = 6, //0 > 15, //1 > 22, //2 > > </code> > > > das heißt in dem fall das ein Menüeintrag ein untermenü beschriebt, so sind an der selben index position > von SUBSTART und SUBEND die offsets in das untermenü definiert. > Die Algorithmen für anzeige und navigation bzw. aktionsauslösung im menü arbeiten damit lediglich > auf dieser struktur und sind rekursiv. > > <code> > function navigateMenu( byte pcfLCD, byte startingPos ) returns byte > { > menuPos pos; > > pos.firstDisplayedLine = c.MENU_SUBSTART[ startingPos ]; > pos.selectedLine = c.MENU_SUBSTART[ startingPos ]; > pos.startingLine = c.MENU_SUBSTART[ startingPos ]; > pos.endingLine = c.MENU_SUBEND[ startingPos ]; > pos.refreshNeeded = 1; > </code> > > zur Anzeige des Hauptmenüs wird diese funktion dann einfach von dem für das betreffende Display > zuständigen thread so aufgerufen: > > menu.navigateMenu(pcfLCD,0); > > jeder Untermenü Aufruf ruft die funktion rekursiv auf. > > Damit gibt es nirgendwo eine Schleife oder ähnliches die über die arraystrukturen läuft, > sondern sie beschrieben sich selbst. > Das gesamte menü sowie die Menü/Untermenüstruktur wird lediglich über die Arraykonstanten definiert. > > Das nur so als Tip. Funktioniert bei meiner Lösung schon seit 4 Jahren wunderbar und die Architektur > hat schon entliche Erweiterungen "überlebt". > > ... sorry code kann ich leider nicht zur Verfügung stellen.. > > Gruß Olaf > > > > > Hallo, > > > > ich hab heute mal intensiv Lektüre und natürlich auch das Forum zu einer Problemstellung > > zu konstanten Arrays befragt, aber leider doch keine Antwort gefunden. Und zwar geht es um > > folgendes Problem: > > > > Ich habe konstante benannte Arrays deklariert und möchte nun in meinem Programm die Anzahl > > der Elemente ermitteln. Ich komm hier einfach nicht auf eine passende Idee. Das sieht ungefähr > > so aus: > > <code> > > const MENUE1[] = "Füllen", "Michen", "Leeren"; > > const MENUE2[] = "Heben", "Senken"; > > ... > > </code> > > Nun möchte ich auf die einzelnen Elemente der Arrays zugreifen. Dazu durchlaufe ich eine Schleife > > und lese die Elemente über den Index aus. > > <code> > > str = MENUE1[i]; > > </code> > > Da die einzelnen Arrays eine unterschiedliche Anzahl von Elementen besitzen, brauche ich dazu > > die Anzahl der Elemente, sonst kommt es zu einer Verletzung des zulässigen Indexbereiches. > > In VBA gibt es zu diesem Problem eine Lösung z.B. mit "UBound()". > > Gibt es hier auch so etwas ähnliches? > > > > Wäre super, wenn mir jemand weiterhelfen könnte. > > > > Viele Grüße > > Steffan
Dateianhang: (.gif, .png., .jpg, .zip, .rar)
max. 256kB
max. 256kB