0

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

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),
4

2 回答 2

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 对象)应用一个“获取文本”操作

于 2013-10-23T18:32:00.087 回答
1

您必须通过以下方式查询 text_item 的选择

get(NameItem, selection, SelNameItem),

如果使用XPCE 谓词,则可以使用NameItem?selection

于 2013-10-23T18:29:23.343 回答