Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Wer ist der Aufrufer?


mats - Do 08.11.18 14:30
Titel: Wer ist der Aufrufer?
Hi,

wie kann ich herausfinden ob die Unit1 von Unit2 oder Unit3 aufgerufen wird? Ich könnte natürlich eine Variable mit 0 oder 1 oder x übergeben, aber geht es nicht ohne? Irgendwo muß doch stehen wer die Unit1 aufgerufen hat? Oder nich?

Bin für jede Idee dankbar, die mir eine Variable erspart.

mats.


GuaAck - Do 08.11.18 20:50

Hallo mats,

ich fürchte, da gibt es nichts. Die wirst beim Auruf einen Parameter mitgeben müssen. Wenn die Aufrufe aus unterschiedlichen Klassen erfolgen, dann könnte vielleicht "classname" (s. TObject) ein Ansatz sein.

Im Rechner wird mit dem Aufruf nur die Rücksprungadresse auf dem Stack abgelegt. Die auf dem Stack zu finden und daraus dann den Namen der aufrufenden Unit zu finden, das ist wohl höchstens eine theoretische Möglichkeit.

Gruß
GuaAck


mats - Fr 09.11.18 08:13

Hallo GuaAck,

das es nicht ohne Vars geht habe ich schon geschnallt. Ich habe EINE Lösung: Vor dem Aufruf der Unit gebe ich der Variablen ModalResult := xyz_Value; Diese Variable lese ich dann auf der anderen Seite / Unit aus. Keine schöne Lösung, aber sie funktioniert.
Daran, den Klassennamen auszulesen, habe ich auch schon gedacht. Ich muss mal sehen was besser bzw. sicherer ist.

Danke

mats.


Delete - Fr 09.11.18 10:39

- Nachträglich durch die Entwickler-Ecke gelöscht -