我如何确定谁调用了 Showme 程序?

procedure Showme(str:string);
begin
  ShowMessage(str);
end;

procedure btnclick(sender:TObject);
begin
  Showme("test");
end;

procedure btn2click(sender:TObject);
begin
  Showme("test");
end;

编辑:困惑
Showme(654, '654'); // procedure name, string
Showme(654, '564');

最佳答案

一个过程没有内置的方法来知道哪个过程调用了它。如果您真的需要知道,您可以使用堆栈跟踪,但这种数据实际上只用于调试。对于实际执行,重要的是传递给例程的数据,而不是它来自哪里。这是结构化编程的基本原则之一。如果两个不同的例程使用相同的数据调用相同的过程,则应将它们视为相同的。

你究竟在做什么,你需要能够分辨出差异?可能有一种更简单的方法来实现它。

关于Delphi 如何确定哪个程序调用了另一个程序?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3631987/

10-10 13:43