![]() |
Von welcher Procedure wird meine Procedure aufgerufen
Guten Morgen,
ich hab da mal eine allgemeine Frage: und zwar hab ich eine Fremdkomponente, eine Art TabBar, deren Zeichen-Procedure ich etwas umschreiben will (farblich). Nun ist es so, dass ich am Procedure-"Kopf", d.h. auch an den Parametern, nichts umstellen darf, aus welchen Gründen auch immer. Nun würde ich gerene wissen, ob es möglich ist in einer Procedure herauszufinden, von welcher Procedure (oder auch Function) diese aufgerufen wurde?! Beispiel:
Delphi-Quellcode:
mfg Armin
procedure Test;
begin SayHello; // ... end; procedure SayHello; begin ShowMessage("GetParentProcedure"); // imaginärer Befehl halt ;) // do anything else... end; |
Re: Von welcher Procedure wird meine Procedure aufgerufen
Gib ihr noch einen parameter indem du die funktion mit gibst ;)
|
Re: Von welcher Procedure wird meine Procedure aufgerufen
Zitat:
|
Re: Von welcher Procedure wird meine Procedure aufgerufen
Wenn Du Debug-Infos hast bekommst du das mit den Debug-Funktion __LINE__, ... aus der Jedi heraus.
Hast Du keine Debug-Infos bekommst Du keine Infos (außer einer Adresse) und das wird dir wohl nicht reichen. Da müsstest Du schon auf .NET umstellen da du dort auch ohne Debug-Infos mehr Laufzeitinformationen wie deine gewünschten bekommst. |
Re: Von welcher Procedure wird meine Procedure aufgerufen
Also die Jedis hab ich drauf, nur wie wende ich das an? woher bekomme ich dieses __LINE__? hab davon noch nie was gehört :oops:
PS: .NET mag und will ich nicht verwenden - außerdem kann ich das hier gar nicht! |
Re: Von welcher Procedure wird meine Procedure aufgerufen
Willst du diese Information nur einmalig und grundlegend haben oder immer zur Laufzeit? Wenn einmalig, dann setz einen Brechpunkt und schau dir den Call-Stack an.
|
Re: Von welcher Procedure wird meine Procedure aufgerufen
Ganz unsaubere Lösung: Wenn du die Routine selbst aufrufst, dann arbeite mit einer globalen Variable. Könnte auch eine private Klassenvariable sein, wenn du diese Änderung vornehmen kannst. Dann an jeder Aufrufstelle vor dem Aufruf einen anderen Code dort setzen.
|
Re: Von welcher Procedure wird meine Procedure aufgerufen
Oder:
Bastel dir mit ner Stringlist nen Callstack^^ |
Re: Von welcher Procedure wird meine Procedure aufgerufen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz