【发布时间】:2012-02-05 20:32:01
【问题描述】:
我在 delphi 中有一个名为 XYZ(sender:TObject) 的过程。我的表格上有一个按钮。
Button.onclick:= xyz;
Button.OnExit:= xyz;
两个事件调用相同的过程。我想在程序 XYZ 中确定哪个事件调用它(onclick 或 onexit),并根据它进行编码。 如何确定哪个事件被触发?谢谢
【问题讨论】:
-
如果你有这样的需求,可能是你xyz的代码太多了。您应该将它拆分为 x, y e z。可能 OnClick 会调用 x,OnExit 会调用 y,两者都会调用 z。
-
更普遍的问题是:如何在 Delphi 中获得“调用堆栈”? - 看到这个问题Need a way to periodically log the call stack/stack trace for EVERY method/procedure/function called
-
@mjn 这在这里没有什么帮助。您肯定不会将 VCL 私有实现细节编码到 VCL 客户端代码中吗?
-
@David 当然你的答案是要走的路 - 调用堆栈解析将是最不可接受的解决方案,我不敢将它作为答案发布;)
-
这听起来像是代码重用的破坏逻辑。调用堆栈更多的是调试工具而不是设计工具。
标签: delphi