 |

|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 10 26, 15:46. Visos datos yra GMT + 2 valandos.
|
|
|
 |
Forumas » Mikrovaldikliai » "Daugiapakopis" menu
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
 |
"Daugiapakopis" menu |
Parašytas: 2009 04 25, 15:13 |
|
|
|
|
Uzsimaniau ant avr padaryt "daugiapakopi" menu (nezinau kaip tiksliai turi vadintis), valdoma 3 knopkem(UP, DOWN, OK/MENU).Pats menu turetu atrodyt mazdaug taip:
1-1-1-2,
1-1-1-4,
2-1-4-2,
Reliai uztektu ir 3 pakopu, gal kas turi pasiulymu ar pavyzdziu kaip tai yra daroma? Turiu pora minciu, bet kazkaip nesinori isradinet pusiau veikiancio dviracio... |
|
|
|
|
|
 |
"Daugiapakopis" menu |
Parašytas: 2009 04 25, 15:38 |
|
|
|
|
Tai daroma taip pat, kaip ir visur kitur. Kiekvienam įrašui padarai masyvą su [ID, parent_ID, tekstas, ...]
Čia problema gal tik tokia, kad reikės vykdyti paiešką pagal 'parent_ID'. Bet jei įrašų yra tik kelios dešimtys, tai kaip ir nieko baisaus, užtruks ten kelias mikrosekundes...
Arba, kad nereikėtų vykdyti paieškos, gali kiekvienam įrašui kurti tokius masyvus:
array[ID, array[child1_ID, child2_ID, child3_ID, ....], tekstas, ...]
Tik čia kita problema - masyvai skirtingo ilgio. Bet tai dažniausiai nėra problema. |
|
|
|
|
|
 |
 |
"Daugiapakopis" menu |
Parašytas: 2009 04 25, 15:51 |
|
|
|
|
| Kodas: |
const char menu0000[] PROGMEM = "1";
const char menu1000[] PROGMEM = "2";
const char menu2000[] PROGMEM = "3";
const char menu3000[] PROGMEM = "3";
const char menu4000[] PROGMEM = "4";
const char *menu0[] PROGMEM ={menu0000,menu1000,menu2000,menu3000,menu4000};
|
Bandau daryt mazdauk taip, cia pirmos pakopos menu, tik kazkaip nesugalvoju kaip viska valdyt, tai yra iskvies antra pakopa, pagal tam tikra pasirinkima ir grist ir jos. |
|
|
|
|
|
 |
 |
"Daugiapakopis" menu |
Parašytas: 2009 04 25, 19:55 |
|
|
|
|
paprstai as darau primityviai tokiu atveju kieviena pkopa tai atskita funkcija kuri paiso savo meniu, o toliaus pasinaudoji copy paste.
jei funkciju labai daug tai galima idaryti savotiska failu sistema
sakykim surasome sarasa meniu punktu tokiu principu:
struct menu item = {
char text*, //pavadinimas
void function*, //ka daryti
void childs[], // vaiku sarasas
void parent //nebutina
}
tada tiesiog susikuri kiekvienam meniu punktui atitinkama struktura.
pradedamas nuo apacios.
toliaus viiska darom su pointeriais
sakykim taip:
pirma susiokuriam kieviena galutine meniu funkcija;
flash menu item1={
"istrinti", /pavadinimas
&erase(), // ka daryti
0// smulkesniu punktu nera
}
flash menu level2={
"failu funkcijos",
0, /nevykdyti jokio funkcijios
{&item1,&item2,&item3} /sarasas smulkesniu punktu
} |
|
|
|
|
|
|
 |
Google paieška forume |
|
|
 |
Naujos temos forume |
|
 |
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
 |
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
 |
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
 |
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
 |
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
 |
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
 |
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
 |
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|

|
 |