首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rebol通过插入符号位置获取区域中的行

rebol通过插入符号位置获取区域中的行
EN

Stack Overflow用户
提问于 2013-04-06 22:59:37
回答 2查看 126关注 0票数 4

我如何在carret所在的区域获得线路?例如,通过将插入符号放在0816行(行上的任何位置),我如何获得行"0816 LEANYER NT DARWIN DELIVERY CENTRE“?谢谢

代码语言:javascript
复制
rebol []

sample-data: [
"0810 TIWI NT DARWIN DELIVERY CENTRE"
"0811 WAGAMAN NT DARWIN DELIVERY CENTRE"
"0812 WANGURI NT DARWIN DELIVERY CENTRE"
"0813 CASUARINA NT PO Boxes CASUARINA"
"0814 ANULA NT DARWIN DELIVERY CENTRE"
"0815 KARAMA NT DARWIN DELIVERY CENTRE"
"0816 LEANYER NT DARWIN DELIVERY CENTRE"
"0817 MALAK NT DARWIN DELIVERY CENTRE"
"0818 MARRARA NT DARWIN DELIVERY CENTRE"
"0819 SANDERSON NT DARWIN DELIVERY CENTRE"
"0820 WULAGI NT DARWIN DELIVERY CENTRE"
"0821 SANDERSON NT PO Boxes SANDERSON"
"0822 NIGHTCLIFF NT PO Boxes NIGHTCLIFF"
"0823 NIGHTCLIFF NT PO Boxes NIGHTCLIFF"
"0824 NIGHTCLIFF NT PO Boxes NIGHTCLIFF"
"0825 NIGHTCLIFF NT PO Boxes NIGHTCLIFF"
]


gui: layout [
b1: backcolor yellow
style fld field 300
across
c1: crit1: fld "hello"
return
ab: area 790x300 font-size 18 wrap []
return

button "Start" [       
        for counter 1 16 1 [ 
         append ab/text reduce [sample-data/(counter) newline]
         ]
         show ab
         ]

button "Quit" [quit]
]
view gui
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-08 18:30:28

当您单击文本或区域表面时,文本中的索引将放入system/view/脱字符中。因此,一旦光标在你的面上可见,你就可以抓取这个插入符号索引,然后计算它在哪一行上。

但是,除非您希望用户编辑area face,否则我会认为使用list face会更容易一些。

下面是一些工作代码--添加这个按钮

代码语言:javascript
复制
button "Find" [
    use [ before cnt ][
        if all [ 
            system/view/caret 
            find ab/text system/view/caret
            before: copy/part ab/text find ab/text system/view/caret
        ][
            parse/all before [ (cnt: 1 ) some [ thru newline ( cnt: cnt + 1 ) ]]
            alert pick sample-data cnt  
        ]
    ]
]
票数 2
EN

Stack Overflow用户

发布于 2013-04-12 19:43:14

这就是你想要的版本;

代码语言:javascript
复制
button "Find" [
    use [ before cnt ][
        if start: system/view/caret [
            ;find the previous newline char (if no this is the first line)
            start: either found? st: find/reverse/tail start newline [st] [head start]
            end: either found? st: find start newline [st] [tail start]
            probe copy/part start end
        ]
    ]
]

请接受Graham的回答,我只是扩展了他的版本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15852406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档