rebol - rebol2 vid 应用程序中的请求日期

标签 rebol rebol2

有人可以告诉我为什么下面的代码不起作用吗?它应该在加载时在字段中设置日期,然后允许通过单击该字段来更改日期。我在 Linux 上使用 rebol/view 2.7.8。实际上,我认为这段代码几年前在我使用 MS Windows 时可以工作,但由于某种原因在 Linux 下不能工作。

drl

    rebol []
    trace true
    out: layout [
        style dater txt bold right [trans-date/date: copy (form now/date)] 48x24
        dater "T-Date:" trans-date: field 80x24 (form now/date) feel [
            engage: func [face action event][
                if action = 'up [
                    lv-dat: request-date/date/offset (now/date) 450x375
                    if lv-dat <> none [
                        trans-date/text: form lv-dat
                        show trans-date
                    ]
                ]
            ]
            show trans-date
        ]
    ]
    view out  

最佳答案

这是代码的清理版本:

Rebol []

out: layout compose/deep [
    style dater txt bold right 48x24
    dater "T-Date:"
    trans-date: field 80x24 (form now/date) feel [
        engage: func [face action event][
            if action = 'up [
                lv-dat: request-date/date/offset (now/date) 450x375
                if lv-dat [
                    face/text: form lv-dat
                    show face
                ]
            ]
        ]
    ]
]
view out

主要问题是在调用 layout 之前缺少对 paren 表达式求值的 compose/deep 调用。但是,这种方法不是初始化面属性的常用方法,您应该将初始化代码放在 VID block 的 do 部分中,如下所示:

Rebol []

out: layout [
    style dater txt bold right 48x24
    dater "T-Date:"
    trans-date: field 80x24 feel [
        engage: func [face action event][
            if action = 'up [
                lv-dat: request-date/date/offset now/date 450x375
                if lv-dat [
                    face/text: form lv-dat
                    show face
                ]
            ]
        ]
    ]
    do [trans-date/text: form now/date]
]
view out

希望这有帮助。

关于rebol - rebol2 vid 应用程序中的请求日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39816649/

相关文章:

rebol - 在 REBOL 中动态地将单词添加到上下文中

return - 为什么 return/redo 在调用上下文中评估结果函数,但不评估 block 结果?

rebol - Python 的 list[3 :7] in REBOL or Red? 等价于什么

rebol - 如何在 Freya 上运行 Rebol

parsing - Rebol:如何将字符串拆分为字符

linux - Linux 上的 Rebol 2 进程在 "day of heavy load"之后在 SIGTERM 处停止

rebol - Rebol 适合填写在线网络表格吗?

rebol - 如何忽略解析时注释掉的行?

rebol - 捕获所有 Rebol VID 错误的有趣方法

recursion - 打破递归函数