句柄 - 正在使用中

时间:2016-09-19 03:39:11

标签: progress-4gl openedge

正在使用的句柄有什么用? 它应该用作数据类型还是对象?请解释缓冲区句柄的用法。

我遇到了以下一组带有句柄和缓冲区的行:

ON WRITE OF customer NEW BUFFER new_in OLD BUFFER old_in 
do:
    DEFINE VARIABLE m_obuf_hdl AS HANDLE  NO-UNDO.
    DEFINE VARIABLE m_nbuf_hdl AS HANDLE  NO-UNDO.

    ASSIGN m_obuf_hdl = BUFFER old_in:HANDLE 
           m_nbuf_hdl = BUFFER new_in:HANDLE.
end.

1 个答案:

答案 0 :(得分:4)

HANDLE是ABL数据类型。 HANDLE的目的是成为内置对象类型的引用(指针),如代码中的Buffer。您将在"缓冲区对象句柄"下找到缓冲区的方法和属性。 ABL文档中的部分。此示例循环遍历缓冲区的所有字段(您的缓冲区old_in)并输出所有字段:

DEFINE VARIABLE i      AS INTEGER NO-UNDO . 
DEFINE VARIABLE hField AS HANDLE NO-UNDO .

DO i = 1 TO m_obuf_hdl:NUM-FIELDS:
    ASSIGN hField = m_obuf_hdl:BUFFER-FIELD (i).
    MESSAGE hField:NAME hField:BUFFER-VALUE.
END.