Eigenschaftsnamen als AnsiString zurückgeben



  • Hallo

    ich suche eine Funktion, die den Namen einer property/Variablen als AnsiString zurückgibt.

    Etwa so:

    *.h
    class MyComponent
    {...
      property AnsiString Caption={read..., write...};
      int test;
    ...
    };
    
    *.cpp
    Caption="Mein Inhalt tut nichts zur Sache";
    test=0;
    AnsiString Compare;
    Compare=GetPropertyName(Caption);// Compare="Caption";
    ...
    Compare=GetPropertyName(test);//Compare="test";
    

    Dabei Suche ich die Funktion "GetPropertyName", wie ich sie nun genannt habe.

    Vielen Dank,
    Michael



  • Gibt's nicht - es sei denn, du programmierst dir selber etwas. (zur Laufzeit haben die Variablen keinen "Namen" mehr, nur einen vorgegebenen Block im Speicher)

    (wenn du zur Compilezeit weißt, welche Variablen du verwenden willst, könntest du den Präprozessor bemühen: #define GetPropertyName(x) #x )



  • Soweit ich weiß, ist das nicht möglich ...



  • Hm, geht sowas denn überhaupt?
    Ersetzt der Compiler später nicht alle Namen durch Adressen?
    Genau dies ist ja auch eine Problematik, wenn man recompilierten Code bearbeiten möchte (Schutzrechte beachten!!!).



  • Sowas geht für Komponenten, aber soweit ich weiß nur für Eigenschaften
    und Methoden. Ich hatte damit mal ein wenig rumprobiert, ist aber schon
    ein paar Tage her. Wenn Not am Mann ist, kann ich das aber nochmal hervor-
    kramen.
    Schau Dir mal in dem Zusammenhang die Unit TypInfo an (z.B. in der Hilfe).

    Für Variablen geht das wohl eher nicht.

    Gruß

    Alexander


Anmelden zum Antworten