Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Obtener, como texto, el nombre de una constante de texto (https://www.clubdelphi.com/foros/showthread.php?t=70234)

rrf 08-10-2010 17:04:18

Obtener, como texto, el nombre de una constante de texto
 
Hola a todos/as.

¿Hay alguna forma de conseguir, como texto, el nombre de una constante global de texto?.

Me explico:

Supongamos que hay una constante llamada const1 y lo que quiero es algo así como una función a la que le pasas como parámetro la constante const1 y recibes de la función el texto 'const1'.

Por supuesto que esa función tendría que funcionar con cualquiera de las constantes de texto y no se puede saber de antemano que constante va a recibir.

Supongo que es algo un poco raro (al menos para mí), pero quizás haya alguna forma de hacerlo.

Gracias de antemano.

Al González 08-10-2010 17:33:32

La mayoría de los identificadores de programa (como el nombre de una constante) se convierten en simples direcciones de memoria cuando se compila el código fuente transformándose en código máquina. Si ejecutas algo como:

Código Delphi [-]
Proc1 (Const1);

El procedimiento Proc1 recibe el contenido de la constante, pero no tiene forma de conocer cuál era el nombre de esa constante en el código fuente, a no ser que tal nombre sea dado también como un valor String explícito.

¿Cuál es el propósito de lo que planteas? Quizá haya otra manera de resolverlo. :)

Saludos.

Al González.

rrf 08-10-2010 17:56:23

Hola de nuevo.

Gracias por tu respuesta, Al.

Mira, estoy dedicando un tiempo a un Unit llamado INILANG2, que se usa para traducir una aplicación a otros idiomas.

Una parte del proceso de adaptar la aplicación consiste en sustituir los nombres de las constantes por una función llamada Misc ( , ). Por ejemplo:

Código Delphi [-]
  showmessage (cons1);
se convertiría en:

Código Delphi [-]
  showmessage (Misc(cons1,'cons1'));

En Misc() el primer parámetro es el nombre de la constante, pero el segundo es el nombre de la constante como texto.

Me planteaba sustituir Misc() por otra función a la que solo se le pasara el parámetro del nombre de la constante, que lo transformara en texto y luego hiciera una llamada a la función Misc().

De esta forma, la adaptación de la aplicación sería más sencilla.

Sin embargo, el problema ya fue resuelto y, si esto que plantéo es muy difícil, pues quizás no valga la pena perder el tiempo en ello.

Pensé que quizás existía alguna función de Delphi que permitía esto, aunque es bastante raro.

Y..., visto lo que dices, quizás no valga la pena preocuparse, pues se trata de hacer una mejora y no de solucionar un problema.

Gracias de nuevo y un saludo.

ecfisa 08-10-2010 17:57:04

Hola.

Coincido con Al, en RTTI se puede obtener el nombre de una propiedad pero no creo posible el de una variable, por que si no entiendo mál, este nombre es convertido a una dirección de memoria por el compilador.


Saludos.


La franja horaria es GMT +2. Ahora son las 01:20:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi