2013-10-23 42 views
0

我有一个包含多个文本项目元素和一个按钮的对话框。我如何 检索值并使用它们?Prolog XPCE如何从文本项中获取多个值?

new(D, dialog('Add a recipe')), 
send(D, append(new(NameItem, text_item('Name')))), 
send(D, append(new(InstItem, text_item('Instruction')))), 
send(D, append(new(IngrItem, text_item('Ingredients')))), 
send(D, append(new(TimeItem, text_item('Time')))), 
send(D, append(button('Store', message(D, return, '1')))), 
get(D, confirm, Rvalue), 
write(NameItem), nl, 
write(InstItem), nl, 
write(IngrItem), nl, 
write(TimeItem), nl, 
free(D), 

回答

1
test :- 
    new(D, dialog('Add a recipe')), 
    send(D, append(new(NameItem, text_item('Name')))), 
    send(D, append(new(InstItem, text_item('Instruction')))), 
    send(D, append(new(IngrItem, text_item('Ingredients')))), 
    send(D, append(new(TimeItem, text_item('Time')))), 
    send(D, append(button('Store', message(D, return, '1')))), 
    send(D, show(true)), 
    get(D, confirm, _Rvalue), 
    maplist(getv, [NameItem, InstItem, IngrItem, TimeItem]), 
    free(D). 

getv(T) :- get(T, selection, V), writeln(V). 

您完全可以处理一个列表,应用到每一个元素(一个textitem对象)一个“获取文本”操作

1

必须通过

get(NameItem, selection, SelNameItem), 

查询text_item的选择。如果您使用XPCE谓词,您可以使用命名选项?选择