Für dieses Forum muß Javascript im Browser aktiviert werden!
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 ! > > > Guten Tag > > > > > > Ich bin nun daran ein menü auf der C-C2 Station aufzubauen. > > > Doch ich stoße auf riesige problme. Das Menü läßt sich durch blättern und untermenüs auswählen, > > > doch wenn ich werte eingeben will wie z.b. die uhrzeit klappt dies nicht, da die tasten für das blättern > > > benötigt wird. Und die aktuellen port zustände live abzufragen geht nicht, da das menü in einer funktion > > > aufgebaut ist. > > > > > > Hat vielleicht jemand ein beispiel menü wo eingabe möglickeiten bestehen, oder vielleicht vorschläge. > > > Das menü das ich gebastellt habe ist ähnlich wie das beispielmenü auf dieser seite. > > > > > > > > > > Hallo ???, > > > > ohne genau Deine Programmteile oder Hardware zu kennen mein Tipp: > > > > Ich habe meine Menüs so aufgebaut, das ist durch alles durchblättern kann (früher auf einem 4x20LCD, > > jetzt auf einem eDip-Touchbildschirm). Sobald ich eine Zahleneingabe tätigen muß, springe ich in ein > > extra dafür vorgesehenen Bildschirm und gebe meine Zahlen ein und muß dann entweder mit Return > > oder Abbruch bestätigen. Dadurch kann ich mein Menü komplett frei gestalten und habe letztendlich > > nur einen Eingabebildschirm für sämtliche Zahleneingaben!! > > > > Ich hoffe, mich verständlich ausgedrückt zu haben. > > > > Gruß und ein schönes, schwüles Wochenende, > > Heiko > > > ups ja also ich verwende die c-c2 Station. > > so hier ist mal so der grundgedanke meiner programmierung > > > const uhrstellen="Uhr Stellen"; > const porttest = "Port Test"; > const ad_test = "AD Test"; > const zuruck = "Zurueck"; > const verlassen = "Verlassen"; > const eingabe_ok="Eingabe OK"; > const resett="Reset"; > const blank2=" "; > const blank5=" "; > const blank16=" "; > > const menu_ebene0 = 5; // Hauptmenu > const menu_ebene1 = 2; // Zeit Stellen > const menu_ebene2 = 1; // Port test > const menu_ebene3 = 1; // AD Test > > string s; > byte pos,sidevor,stby; // pos ist varb. für menu position. > > > > function dis(byte seite,byte restpos) > { > > if (restpos != 0) pos=0; > > > if (seite == 0) // Hauptmenu > { > pos = pos + 1; > if (pos > menu_ebene0) pos = 1; > if ( pos == 1) > { > s=blank2 + uhrstellen + blank5; > lcdext.goto (1,1); > lcdext.print (s); > s=blank16; > lcdext.line(2); > lcdext.print(s); > sidevor = 1; > } > else if ( pos == 2) > { > s=blank2 + porttest + blank5; > lcdext.line(1); > lcdext.print(s); > s=blank16; > lcdext.line(2); > lcdext.print(s); > sidevor = 2; > } > else if ( pos == 3) > { > s=blank2 + ad_test + blank5; > lcdext.goto(1,1); > lcdext.print(s); > s=blank16; > lcdext.line(2); > lcdext.print(s); > sidevor = 3; > } > else if (pos == 4) > { > s=blank2 + resett + blank5; > lcdext.goto(1,1); > lcdext.print (s); > s=blank16; > lcdext.line(2); > lcdext.print(s); > sidevor = 4; > } > else if (pos == 5) > { > s=blank2 + verlassen + blank5; > lcdext.goto(1,1); > lcdext.print (s); > s=blank16; > lcdext.line(2); > lcdext.print(s); > sidevor = 200; > } > } > > if (seite == 1) // Uhr Datum Stellen > { > pos = pos + 1; > if ( pos == 1) > { > s=blank2 + uhrstellen+ blank5; > lcdext.goto(1,1); > lcdext.print(s); > s=blank16; > lcdext.line(2); > lcdext.print(s); > uhrdatum(); > } > else if ( pos == 2 ) > { > s=blank2 + zuruck + blank5; > lcdext.goto(2,1); > lcdext.print (s); > sidevor = 0; > } > } > if(seite ==2) //port test > { > pos = pos + 1; > if (pos==1) > { > stports.setLED(7,1); > test(); > } > else if (pos == 2) > { > s=blank2 + zuruck + blank5; > lcdext.goto(2,1); > lcdext.print (s); > sidevor = 0; > } > } > > > if(seite == 4) //reset > { > pos = pos + 1; > if (pos == 1) > { > quit -1; > } > } > } > > thread standby // Standy by teil wenn keine taste gedrückt oder menü verlassen wurde > { > lcdext.clear(); > sleep 200; > loop > {//loop anfang > lcdext.goto(1,4); > lcdext.time(1); > lcdext.goto(2,3); > lcdext.date(1); > }//loop ende > } > > thread menu // menu auf c-c station 2 > { > byte seite, flag; > pos = 0; > seite = 0; // ausgewähltes untermenü > > loop > { // loop anfang > > if (stkeyb.get() !=255) // warten taste gedrückt > { > stby = 0; //stop standby therad (main therad > halt standby; // stop standby therad > capture flag; > > if (stkeyb.get() == 13) //menu blättern > { > wait stkeyb.get()== 255; > dis(seite,0); > } > else if (stkeyb.get() == 14) // Menüpunkt wählen ( ENTER ) > { > wait stkeyb.get() == 255; > seite = sidevor; > if (seite == 200) // wenn verlassen ausgewählt wurde > { > stby=1; > pos=0; > sidevor=0; > seite=0; > sleep 100; > resume standby; > reset standby; > yield; > } > else dis(seite,1); > } > } > release; > > }// loop ende > }// therad ende > > > thread main > > { > > stports.init(); > lcdext.init(); > max7311.setDDRw(0,-1); > > stby = 1; > > > run menu; > > //run display; > loop > { > if (stby == 1) run standby; > } > > }