Du machst nicht nur eine Variable, sondern eine Stringlist, die als Callstack dient.
Jede Funktion/Prozedur schreibt am anfang ihren Namen hinen, also quasi Callstack.Add('xyz');
und löscht am Ende den letzten Eintrag.
Wenn du dann hast:
Delphi-Quellcode:
procedure Do_something;
begin
Callstack.Add ('Do_something');
// mach was
// hier ist er dann Button1Click; xyz; Do_something;
Callstack.DeleteLast;
end;
procedure xyz;
begin
Callstack.Add ('xyz');
Do_something; // Aufruf einer anderen Peozedur
// wenn hier was passiert ist er wieder Button1Click; xyz;
Callstack.DeleteLast;
end;
procedure Button1Click;
begin
Callstack.Add ('Button1Click');
xyz;
Callstack.DeleteLast;
end;
Alee Klarheiten beseitigt ?