Ver Mensaje Individual
  #2  
Antiguo 08-06-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Veo difícil que esto pueda hacerse en delphi, porque los nombres de las constantes son sólo para identificarlas en el código; el compilador sustituye su valor en cada expresión en la que aparece, de manera que el nombre se pierde en el ejecutable final.

No obstante hay alternativas. Por ejemplo, puedes valerte de un TStringList que 'englobe' las constantes:

Código Delphi [-]
var
  Constantes: TStringList;

...

Constantes.Values['cod0'] := 100;
Constantes.Values['cod1'] := 101;
Constantes.Values['cod2'] := 102;
Constantes.Values['cod3'] := 103;

...

if S = 'cod2' then
  Y := Constantes.Values[S];

La variable Constantes debes construirla ates de usarla con

Código Delphi [-]
Constantes := TStringList.Create;

y destruirla cuando ya no la uses:

Código Delphi [-]
Constantes := TStringList.Free;

Claro que en realidad ya no estamos hablando de constantes, pero puede satisfacer la necesidad.

// Saludos
Responder Con Cita