Sida 1 av 1

Hur bygger ni menyer i C?

Postat: 27 maj 2011, 17:32:07
av kimachren
Jag har en display som jag vill visa en meny på. Jag har testat lite med en "array of struct" med meny-index, text mm. men det verkar krångligt om t.ex. har flera undernivåer. Hur gör ni?

Re: Hur bygger ni menyer i C?

Postat: 27 maj 2011, 17:35:18
av blueint
Bygg ett länkat träd. Ungefär som underbibliotek i ett filsystem.

Re: Hur bygger ni menyer i C?

Postat: 27 maj 2011, 18:49:45
av Icecap
Det beror ju på vad som behövs. Om man antar att det är ett antal olika värden som ska kunde ställas får man kolla hur många det är. om det blir alldeles för många får man gruppera dom så att man kan välja vilken typ (undergrupp) man vill ställa och sedan välja vilket värde man vill ändra.

Men är det relativt få är en platt struktur ganska enkel att åstadkomma.

Man kan göra en tabell med texten som ska visas, en annan tabell som pekar på värden samt några tabeller med min- och max-värden samt stegning (om det behövs) och sedan är det bara att ha en rutin som kan visa rätt text och medge rätt sätt att ändra rätt värde. Ganska enkelt faktisk.

Men då din fråga är ganska ospecifik är det väl det närmsta jag kan komma det hela.

Re: Hur bygger ni menyer i C?

Postat: 27 maj 2011, 18:54:26
av labmaster
Jag brukar använda en xml-struktur och till detta ett procedurlib som hanterar strukturen. Det enkel att lägga till nya noder och koppla programkod till en sådan. XML-strukturen lägger jag i en strängkonstant om det inte finns ett operativsystem som innehåller filsystem.

Re: Hur bygger ni menyer i C?

Postat: 27 maj 2011, 19:43:27
av blueint
RAM, sekundärminne, processorkapacitet, displaystorlejk och typ, besvarar en del nödvändlig bakgrundsinformation.

Re: Hur bygger ni menyer i C?

Postat: 28 maj 2011, 07:42:40
av kimachren
Frågan var i största allmänhet, men jag håller på med avr.

Re: Hur bygger ni menyer i C?

Postat: 28 maj 2011, 08:12:41
av TomasL
Vi har gjort en meny-generator, som troligen snart kommer att släppas (fortfarande en del buggar).
Ett grafiskt gränssnitt, och den genererar sedan all erforderlig kod (C-kod).
Mer info kommer.

Re: Hur bygger ni menyer i C?

Postat: 29 maj 2011, 17:22:58
av PaNiC
TomasL, det låter strålande. Jag är precis i färd med att skulla ordna till menysystem i ett projekt. Vill inte gärna återanvända det jag skrev en gång. Det är krångligt.

Re: Hur bygger ni menyer i C?

Postat: 29 maj 2011, 22:56:47
av baron3d
TomasL: Vi har gjort en meny-generator...
En liten aptitretare
Namnlös.gif

Re: Hur bygger ni menyer i C?

Postat: 29 maj 2011, 23:13:43
av TomasL
tänkte just be dig posta en skärmdump, i alla fall i morgon, när vi ses.

Re: Hur bygger ni menyer i C?

Postat: 31 maj 2011, 08:20:16
av TomasL
Kommer inom kort att posta en länk under "endast medlemmar".
Versionen jag postar är i princip en alfa-version, dvs den har inte hunnit till beta ännu.
Den kommer att vara tidsbombad, troligen till sista Augusti eller så. (de genererade menyerna kommer naturligtvis att fungera (förhoppningsvis))
I övrigt blir det inga restriktioner när det gäller menyantal och djup (i princip).
Därefter mottages kommentarer mm med tacksamhet.

Re: Hur bygger ni menyer i C?

Postat: 31 maj 2011, 10:14:01
av jesse
Den tänker jag också testa när den kommer. Verkar ju riktigt trevlig. :P

Re: Hur bygger ni menyer i C?

Postat: 1 juni 2011, 14:32:05
av TomasL
Första versionen är nu klar.
Ni hittar länken HÄR

Re: Hur bygger ni menyer i C?

Postat: 7 juni 2011, 00:52:09
av E85
Såhär ser mitt ut såhär långt.. fast det genererar inte en enda rad kod än. Det roligaste är ju att göra ett snyggt GUI. ;)
http://code.google.com/p/menugenerator/

Ladda gärna ner och prova och kom med synpunkter!

Re: Hur bygger ni menyer i C?

Postat: 7 juni 2011, 10:15:27
av jesse
E85: snyggt!. Jag gillar särskilt att man enkelt kan välja vilka/hur många knappar man vill ha och antalet rader på displayen.
Hur har du tänkt dig koden? Förhoppningsvis oberoende av processortyp.

jag kan tänka mig att man dels behöver en massa listor i programminnet som anger ordningen och rubriker mm... också vilka funktioner som ska utföras (ställa in ett heltal, svara på ja/nej eller annat?). Sedan kanske en lista i RAM med användardata, dvs. de data som ska presenteras och kunna ändras. Vissa data i menyn kanske bara ska ḱunna visas med inte ändras. På en enkel meny jag gjorde för längesedan ( I AVR assembler för kylskåp) så presenterades data i en nivå - om man ville ändra i data fick man klicka sig ner en nivå. Man kunde alltså titta på data utan att råka ändra i det om man inte valde med "select" knappen. Då presenterades exakt samma data igen, fast med en blinkande markör som man kunde flytta till de olika fälten.