Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Constantes de Delphi en Run Time (https://www.clubdelphi.com/foros/showthread.php?t=4662)

Carlos Claveria 23-10-2003 10:37:33

Constantes de Delphi en Run Time
 
Todos sabemos que cambiando ciertos ficheros en Delphi podemos hacer que los mensajes se muestren en el idioma deseado.

Lo que necesito es poder cambiar esos mesajes cuando el programa ya se está ejecutando, es decir, imaginaros que en un fichero de configuración que lee el programa cuando se inicia tengo definido el idioma, y es en ese momento cuando cambio los valores. La verdad es que llevo bastante dandole vueltas al asunto y no se como hacerlo.

delphi.com.ar 23-10-2003 16:23:20

Modificar constantes en tiempo de ejecución es imposible, ya que el compilador reemplaza la constante por el valor, por lo que no existe una "variable" con su contenido. Intenta compilar esto:
Código:

SOpenFileTitle := 'Abrir';
Pero... si utilizas constantes tipada, si puedes hacerlo ya que estas constantes funcionan como variables, a no ser que la directiva {$J-} este activa.
Código:

const
  MI_CONSTANTE : string = 'delphi.com.ar';

procedure TForm1.Button1Click(Sender: TObject);
begin
  MI_CONSTANTE := 'Hola!';
end;

Si lo que quieres es modificar los resourcestrings en tiempo de ejecución, te recomiendo probar el ejemplo RichEdit que puedes encontrar en la carpeta Demo, que es un ejemplo de una aplicación MultiLenguage.

Saludos!

jachguate 23-10-2003 16:41:07

Podes valerte tambien de archivos de recursos, o de constantes del tipo ResourceString.

Delphi tiene un mecanismo ya definido para generar ejecutables multilenguaje, que se vale de este mecanismo. La verdad a mi me parecio algo complicado, porque no solo generas el ejecutable sino varios archivos extras que dependen del lenguaje o algo asi, y se basa en la configuracion de idioma de windows para determinar cual usar. Ahora no tengo a la mano delphi, pero estoy seguro que buscando en la ayuda por multilingual o resourcestring te aparece algo por alli.

Si tengo oportunidad de hacer la busqueda, con gusto te paso el tema para que te sea mas facil encontrarlo.

Hasta luego.

;)

roman 23-10-2003 17:55:12

Otra forma de hacer esto es utilizando la unidad Multiidioma del amigo cadetill. Utiliza una base de datos para almacenar los textos lo cual es muy útil ya que es muy sencillo editar las traducciones. El uso es también muy fácil.

// Saludos


La franja horaria es GMT +2. Ahora son las 19:06:08.

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