2012-05-25 2 views
0

У меня есть еще одна проблема с Prolog, где я не могу найти ключ к решению проблемы.Диалог Prolog XPCE возвращает список выборов

вот мой код

list(Q):- 
new(D,dialog('Sehenswuerdigkeiten')), 
send_list(D,append, 
[ 
new(Von,menu(von,cycle)), 
new(Zu,menu(zu,cycle)), 
new(@button,button('Los',message(@prolog,packing,Von?selection,Zu?selection,Q))) 

]), 
findall(X,sehenwuerdigkeit(X),Y), 
send_list(Von, append,Y), 
send_list(Zu, append,Y), 
send(D,open). 

packing(X,Y,Q):-Q=[X,Y]. 

:-consult('sw.pl'),list(Q). 

мне нужно как отборов циклов, чтобы начать другую функцию. Но пролог не может открыть операцию упаковки.

Проблема решена, если диалог дает мне Q = [первый выбор, второй выбор] назад.

Надеюсь, вы можете мне помочь. Im очень расстроен по этому поводу ...

ответ

0

Вы должны прочитать эту страницу http://www.swi-prolog.org/packages/xpce/UserGuide/modal.html

list(Q):- 
    new(D,dialog('Sehenswuerdigkeiten')), 
    send_list(D,append, 
     [new(Von,menu(von,cycle)), 
     new(Zu,menu(zu,cycle)), 
     new(_, 
      button('Los', 
       message(D,return,[Von,Zu])))]), 
    findall(X,city(X),Y), 
    send_list(Von, append,Y), 
    send_list(Zu, append,Y), 
    get(D,confirm, Answer), 
    get(Answer, element(1), A), 
    get(A, selection, AV), 
    get(Answer, element(2), B), 
    get(B, selection, BV), 
    send(D, destroy), 
    Q = [AV, BV]. 

city(berlin). 
city(london). 
city(paris). 
city(rom). 
+0

пыльников время ТНХ я прочитал эту страницу вчера, но я думаю, что документация не так хорошо, но ТНХ;) теперь у меня есть все, что я необходимость –

Смежные вопросы