Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Wie den Namen einer Variablen auslesen? (https://www.delphipraxis.net/142199-wie-den-namen-einer-variablen-auslesen.html)

MisterNiceGuy 23. Okt 2009 15:46


Wie den Namen einer Variablen auslesen?
 
Hi, gibts die Möglichkeit den Namen einer Variable auszulesen? Muss nicht dynamisch sein, sondern sollte schon beim Kompilieren (nicht zur Laufzeit) geschehen.

Danke für eure Hilfe :)

sirius 23. Okt 2009 15:47

Re: Wie den Namen einer Variablen auslesen?
 
Generell Nein, aber kannst du mal dein Problem genauer beschreiben, was meinst du mit "nicht zur Laufzeit"

MisterNiceGuy 23. Okt 2009 15:51

Re: Wie den Namen einer Variablen auslesen?
 
Jopp, ich schreib ein Framework und habe da eine Funktion:

Delphi-Quellcode:
function WriteToLog(MyVector:TVec3D):boolean;
...sodass am Ende in meinem Log stehen soll:

VectorName -> VectorWert

Nun könnte ich ja einen 2. Parameter einrichten, sodass ich noch den Namen des Vektors mitgeben,
aber es wäre natürlich schicker, wenn ich den Namen der Vektor-Variablen automatisch ermitteln könnte!

Uwe Raabe 23. Okt 2009 16:38

Re: Wie den Namen einer Variablen auslesen?
 
Zitat:

Zitat von MisterNiceGuy
Jopp, ich schreib ein Framework und habe da eine Funktion:

Delphi-Quellcode:
function WriteToLog(MyVector:TVec3D):boolean;
...sodass am Ende in meinem Log stehen soll:

VectorName -> VectorWert

Nun könnte ich ja einen 2. Parameter einrichten, sodass ich noch den Namen des Vektors mitgeben,
aber es wäre natürlich schicker, wenn ich den Namen der Vektor-Variablen automatisch ermitteln könnte!

Selbst wenn das so einfach ginge, wäre der Output immer

"MyVector" -> VectorWert

Apollonius 23. Okt 2009 16:45

Re: Wie den Namen einer Variablen auslesen?
 
Da lobe ich mir meine C++-Makros. In Delphi geht das nicht.

helgew 23. Okt 2009 16:51

Re: Wie den Namen einer Variablen auslesen?
 
wieviel du aus dem laufenden Code noch bekommst zeigt ein disassemblierter oder nach Delphi zurückübersetzter Quelltext. Das einzige, was überlebt, sind exportierte Funktionsnamen in dlls und string-Konstanten. Okay, Namen von Fensterklassen, mit welchen man sich registrieren muss, überleben auch, aber ansonsten ist fast alles verschwunden inklusive der Variablen. Nimm mal einen ressource explorer und schau rein, das dürfte für die Ernüchterung reichen.

The Delphi way wäre es dann, einen packed record mit string fester Länge zu definieren, dann kannst du den Namen mitführen, wenn es aus performancegründen überhaupt möglich ist.

@Apollonius du hast das mit dem Delphiforum noch nicht so recht verstanden, oder? Schau mal oben links - und das nächstemal schreibst du dann einen konstruktiven Post.

himitsu 23. Okt 2009 16:53

Re: Wie den Namen einer Variablen auslesen?
 
wenn für die Typen ein RTTI-Eintrag existirt, ann diesen einfach auslesen

schau dich hier z.B. mal zum Thema Serialisierung um.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz