Prolog 在XPCE中从编辑器中读取文本

Prolog 在XPCE中从编辑器中读取文本,prolog,editor,xpce,Prolog,Editor,Xpce,我正在编写一个XPCE程序,其中用户可以在文本窗口中输入文本,然后由Prolog程序进一步处理(例如,通过运行拼写检查) 因此,我需要一个文本窗口,可以在其中自由输入文本(包括段落、标点符号等),然后将文本存储在Prolog变量中以供进一步处理 这很容易(也很有效)使用如下文本项: send(D, append(new(Text, text_item('Enter Text')))) 但是,这只允许输入单行,不适合较长的文本 “编辑器”环境看起来非常适合此任务;我可以使用 send(D,

我正在编写一个XPCE程序,其中用户可以在文本窗口中输入文本,然后由Prolog程序进一步处理(例如,通过运行拼写检查)

因此,我需要一个文本窗口,可以在其中自由输入文本(包括段落、标点符号等),然后将文本存储在Prolog变量中以供进一步处理

这很容易(也很有效)使用如下文本项:

 send(D, append(new(Text,   text_item('Enter Text'))))
但是,这只允许输入单行,不适合较长的文本

“编辑器”环境看起来非常适合此任务;我可以使用

send(D, append(new(Text1,editor),below))
在这里,可以输入多行文字,包括段落等。 但是现在,如何访问用户输入的文本?它显然没有存储在变量Text1中。我读过关于文本缓冲区的文章,但不知道如何将其链接到编辑器。

改编自

:-使用_模块(库(pce))。
多行输入(文本):-
新建(D,对话框(“提示输入名称”),
发送(D、追加、新建(TI、编辑器)),
发送(D,追加,
按钮(确定,消息(D,返回,
TI(含量)),
发送(D,追加,
按钮(取消,消息(D,返回,@nil)),
发送(D,默认按钮,确定),%ok:默认按钮
获取(D,确认,回答),%此块!
发送(D,销毁),
回答\=@无,%n已取消
获取(答案、值、文本)。

只需将文本项替换为编辑器,获取其内容,然后从中获取价值。

尝试获取(编辑器名称、文本缓冲区、我的文本)。谢谢,这很有帮助。但是,现在文本值作为变量“text”的值被传递一次。是否也可以将其设置为可以更改文本,并且只要按下“确定”按钮,就会处理新版本?应该足以从编辑器中获取
内容,然后是
值。当然,您可以从将变量绑定到编辑器实例的任何事件处理程序执行此操作-此处
TI