Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[bascom] wielopoziomowe menu

adampyndzel 21 Lut 2012 09:25 2358 5
  • #1 21 Lut 2012 09:25
    adampyndzel
    Poziom 16  

    witam.

    ma ktoś może jakiś program podglądowy lub jakiś schemat wykonania menu na wyświetlacz 2x16. Ma to być typu up, dn, ok, back i zmiana róznych nastaw. Kombinowałem z różnymi skokami, select case, debounce itp... nie no nie chce mi się gadać ile tego było ale gdzieś robię bląd i nie wiem co dalej. Wiem że koledzy maja takie programy i mi je udostępnią lub chociaż naprowadzą na trop.

    pozdrawiam.

    Proszę poprawić pisownię.
    Robak


    Pisownia poprawiona Szefie :)

    0 5
  • #2 22 Lut 2012 18:24
    SylwekK
    Poziom 29  

    Ale właśnie wg mnie select...case jest najprościej i najłatwiej. Jeśli się zagęszczasz w podmenu robisz wyskok przez gosub do kolejnego select ...case. Dla ułatwienia zrób aby każde menu miało swój licznik aktualnej pozycji chociaż można z powodzeniem zrobić też kilka poziomów na jednej zmiennej - wszystko zależy jak duże menu. Nikt Ci gotowca nie da. Zacznij sam, a my Cię ewentualnie poprawimy :)

    0
  • #3 31 Mar 2012 13:15
    Beny1_1988
    Poziom 9  

    Witam.
    Mój problem który przedstawię tyczy się też menu.
    Podczas pisania programu natknąłem się na problem dotyczący zmiany zakładek w podmenu. Czy może ktoś sprawdzić mój kod lub chociaż podpowiedzieć jak mam go poprawić.
    Wygląd menu jest następujący:

    Menu główne:
    Praca, Konfiguracja, Pomoc,

    Praca:
    Automatyczna, Wyzwalana

    Konfiguracja:
    Zakres, Liczba próbek

    Pomoc:
    S1 - w lewo
    S2 - w prawo
    S3 - zatwierdź
    S4 - wyjdź
    Kod:

    Kod: basic4gl
    Zaloguj się, aby zobaczyć kod

    0
  • #4 31 Mar 2012 13:52
    SylwekK
    Poziom 29  

    Szczerze mówiąc po krótkim zapoznaniu z programem przeraża mnie ilość użytych waitów i powtarzania instrukcji. Poza tym całe wielopoziomowe menu można zrobić bez najmniejszych problemów w jednej pętli select-case z wykorzystaniem tylko jednej zmiennej wskaźnikowej aktualnej pozycji "menu". Dzięki temu może być o wiele przejrzyściej, łatwiej i przede wszystkim krócej. Jak? Zastanów się co by było gdy po wybraniu jednej z opcji menu wskaźnik pozycji menu został zwiększony o np. 10... czyli pierwsze podmenu to 10,11...19, drugie podmenu to 20,21...29, itd. Jeśli każde pod menu (dla zwiększania o 10) nie zawiera więcej niż 10 pozycji to na pewno będzie wszystko czytelniejsze i prostsze. Można też zwiększać o potęgę 2 i badać konkretne bity. Rozwiązań jest 1000, a Twoje nie należy do najszczęśliwszych. Z kolei np. taki Cls wystarczy użyć tylko raz po wykryciu jakiegoś przycisku.
    Pozdrawiam

    0
  • #5 31 Mar 2012 14:41
    Beny1_1988
    Poziom 9  

    Czyli jeśli dobrze zrozumiałem wystarczy jedna pętla select-case a w niej zawierały by się wszystkie możliwe przypadki z menu i podmenu oraz zakładki głębszych podmenu ?

    0
  • #6 31 Mar 2012 15:07
    SylwekK
    Poziom 29  

    Dokładnie tak. Select case już zadba o to, co ma się wyświetlić w zależności od wartości.
    Np. kiedy wskaźnik menu jest na pozycji 2 (praca) i zatwierdzisz wejście do tego podmenu to wskaźnik zmieniasz na 20 . Zadbać jedynie musisz o badanie zakresu menu, bo on też się zmieni ale to akurat nie jest trudne (dodatkowe warunki). Aha, zamiast Men = Men + 1 lepiej wygląda Incr Men i analogicznie Decr Men dla zmniejszania.
    Pokombinuj też z opcją potęgi 2 czyli zamiast zwiększać o 10 zwiększaj o 8 (16,32 - w zależności od ilości opcji w menu). Wtedy przy badaniu zakresu jest łatwiej bo sprawdzasz tylko ustawiony konkretny bit, który odpowiada za właściwe podmenu.

    1