gpt4 book ai didi

progress-4gl - 如何找到调用过程的过程句柄?

转载 作者:行者123 更新时间:2023-12-04 05:11:54 29 4
gpt4 key购买 nike

我正在尝试编写一些测试程序,并且我有一个运行过程的想法,并让过程调用内部函数和调用程序中的过程。据我了解,您可以使用 RUN x IN y其中 y 是调用堆栈中的任何过程。

但是,我似乎找不到任何方法来获取调用过程的句柄。似乎没有办法向上移动调用堆栈。

我能想到的唯一方法是传递调用过程的 THIS-PROCEDURE作为参数处理。它会工作,但似乎相当不优雅。

最佳答案

你快到了。看看下面使用 THIS-PROCEDURE:INSTANTIATING-PROCEDURE 句柄的示例。

INSTANTIATING-PROCEDURE attribute

Returns the handle to the procedure in which an object was instantiated.


父程序.p
RUN childProgram.p.

PROCEDURE hello:
DEFINE INPUT PARAMETER pcMessage AS CHARACTER NO-UNDO.
MESSAGE "Child says:" pcMessage VIEW-AS ALERT-BOX INFORMATION.
END.
子程序.p
MESSAGE "Calling parent. Anybody home?" VIEW-AS ALERT-BOX.

IF VALID-HANDLE(THIS-PROCEDURE:INSTANTIATING-PROCEDURE) THEN
RUN hello IN THIS-PROCEDURE:INSTANTIATING-PROCEDURE (INPUT "I am your child") NO-ERROR.
IF ERROR-STATUS:ERROR THEN DO:
MESSAGE "That didn't work" VIEW-AS ALERT-BOX ERROR.
END.

关于progress-4gl - 如何找到调用过程的过程句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29559882/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com