menux

esempio per provare inserimento legenda e parametri da passare a menu.pro per creazione menu
in programmi di vario tipo

 

/* menux.pro */
nowarnings
domains
include "menu.pro"
predicates
fine
pulisci
finestra
elabora1(integer)
elabora2(integer)
termine1(integer)
termine2(integer)
scelta(integer)
scelta1(integer)
scelta2(integer)
elabora(integer)
azione1
azione2
azione
finestra1
termine(integer)
goal finestra,azione.
clauses
  finestra:-
  makewindow(1,112,7,"finestra",1,1,17,75),
  makewindow(2,112,1,"scheda",15,40,5,40).
  
  pulisci:-
  shiftwindow(2),beep,
  write("premi ENTER per proseguire"),
  readchar(_),clearwindow,shiftwindow(1),
  clearwindow.
  finestra1:-shiftwindow(1),clearwindow.   
  azione:-
  menu(2,40,[opzione1,
  opzione2,opzione3,
  fine],Scelta),
  elabora(Scelta),
  termine(Scelta),!.
  elabora(0).
  elabora(1):-Scelta(1).
  elabora(2):-Scelta(2).
  elabora(3):-Scelta(3).
  termine(4).
  termine(0).
  Scelta(1):-azione1.
  Scelta(2):-azione2.
  Scelta(4):-fine.
  
  azione1:-
   clearwindow,
   menu(2,30,[opzione1,
   menu_principale],Scelta),
   elabora1(Scelta),
   termine1(Scelta),!.
   elabora1(0).
   elabora1(1):-scelta1(1).
   elabora1(2):-scelta1(2).
   termine1(2).
   termine1(0).
   scelta1(1):-
   finestra1,
   write("opzione1\n"),
   pulisci,
   azione1.
   scelta1(2):-write("ritorno a menu principale\n"),
      azione.                                        
      
   azione2:-
      clearwindow,
      menu(5,50,[opzione2,
      torna_a_menu_principale],
      Scelta),
      elabora2(Scelta),
      termine2(Scelta),!.
      elabora2(0).
      elabora2(1):-scelta2(1).
      elabora2(2):-scelta2(2).
      termine2(2).
      termine2(0).
      scelta2(1):-
      finestra1,
      write("opzione2\n"),
      pulisci,
      beep,azione2.
      scelta2(2):-write("ritorno a menu principale\n "),
      beep,azione.
         
   fine:-
   clearwindow,
   write("fine prove\n"),beep.