Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zugriff auf Variablen/Constanten über deren Namen (https://www.delphipraxis.net/102943-zugriff-auf-variablen-constanten-ueber-deren-namen.html)

Ares 7. Nov 2007 10:55


Zugriff auf Variablen/Constanten über deren Namen
 
Hallo!

In einer Unit gib es eine große Menge von String-Konstanten die ich gerne in einer anderen Unit verwenden würde. Der Zugriff auf die soll aber nicht direkt erfolgen, sondern über eine Getter-Funktion:

Delphi-Quellcode:
Unit A;

const
  EINE_KONSTANTE     = 'abc';
  NOCHEINE_KONSTANTE = '123';
  ...

  function GetConstant(Name: string): String
  begin
    result := ''; // Default Rückgabe
    if (Name='EINE_KONSTANTE')    then result := EINE_KONSTANTE;
    if (Name='NOCHEINE_KONSTANTE') then result := NOCHEINE_KONSTANTE;
    ...
  end;
Nun habe sind es aber wirklich sehr viele Konstanten und die Funktion GetConstant müsste für jede Konstante eine eigene If-Abfrage enthalten. Das ist natürlich nicht sehr elegant.

Gibt es also eine Möglichkeit mit dem String-Wert 'EINE_KONSTANTE' direkt den Inhalt der gleichnamigen Konstante zur erhalten? Die funktion würde dann quasi so aussehen:

Delphi-Quellcode:
  function GetConstant(Name: string): String
  begin
    if (EsGibtKonstanteMitFolgendemNamen(Name)=false) then result := ''
      else result := WertDerKonstanteMitFolgendemNamen(Name);
  end;
Geht sowas?

Besten Dank
Ares

sirius 7. Nov 2007 10:58

Re: Zugriff auf Variablen/Constanten über deren Namen
 
Nein. Namen von Variablen und Konstanten werden nirgends gespeichert.

Aber wie wärs denn mit Ressourcen?

Bernhard Geyer 7. Nov 2007 10:58

Re: Zugriff auf Variablen/Constanten über deren Namen
 
Kannst du uns auch verraten wieso hier der direkte zugriff auf "Konstanten" schlecht wäre?

Was du scheinbar willst ist eher eine Key-Value-Tabelle die du bei Programmstart "konstant" füllst.
Dein wunsch könnte unter .NET u.U. per Reflektion gelößt werden. Unter Win32 ist mit abgeschalteten Debug-Infos keinerlei Info mehr vorhanden wie die Konstante im Quellcode benannt wurde.

Ares 7. Nov 2007 11:37

Re: Zugriff auf Variablen/Constanten über deren Namen
 
Danke, ich werde mir was anderes überlegen :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:54 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-2025 by Thomas Breitkreuz