Zitat:
Also wie gesagt, PACKAGEINFO bringt nichts und an den InitContext kommt bißher kein Code selbstständig ran
Doch man kommt, das hatte ich aber oben schon beschrieben
Du kompilierst dein Modul mit .MAP Files. Suchst darin InitConntext und dessen Addresse und nimmst eine public globale Variable deiner Wahl aus
Unit System.pas, deren Addresse und berechnet per Subtraktion einen Offset. Ausgehend von der Addresse der public Variablen + dem Offset berechnet aus dem Map File kannst du zur Laufzeit auf InitContext zugreifen. Das geht natürlich nur für eine jeweilige Delphi Version und ist wie immer bei solchen Sachen ein Hack/Trick. Aber was besseres kenne ich auch nicht.
Eines weis ich mit Gewissheit: mein Debugging Modul für mein modulares Frame Produkt benutzt diese Tricks und kann sehr wohl zur Laufzeit und dynamisch jeden Addressbereich zu einem Unitnamen auflösen. Dh. wir benötigen also die Namen der Units und die Addressbereiche die sie zur Laufzeit im Modul belegen. Und das ist ja was du suchst. Denn wenn man das hat weis man auch an Hand der Addressen der Init/Finit Prozeduren der Units deren Unitnamen, über InitContext die Reihenfolge in der
Unit System.pas wie diese Init/Finit Prozeduren aufgerufen werden.
Gruß Hagen