FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
ResourceString y punteros
Hola amig@s,
Estoy intentando trabajar con Gnugettext y en un programa original hay multitud constantes de array que necesitan ser traducidas; Como las constantes no se inicializan en tiempo de ejecución en los cambios de idiomas he apuntado las mismas en forma de punteros a un ResourceString; pero delphi aunque deja ejecutar la acción no presenta ningún dato al llamar al array y al cerrar provoca una excepción; Este sencillo código de ejemplo, funciona correctamente en Lazarus, con lo que no se si hay algo en Delphi que requiera alguna directiva especial u otro cambio en el código que desconozco. Adjunto el código:
Última edición por geolife fecha: 27-05-2018 a las 18:51:52. |
#2
|
||||
|
||||
En mi blog tienes un par de artículos con ejemplos sobre el proceso completo con GNUGettext con Delphi.
Revísalos a ver si te son de ayuda. Pruébalo también sobre un proyecto pequeño y luego sobre el que tú tienes a ver si eso te da pistas.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Hola Neftali!
Gracias por contestar; precisamente ha sido a través de los ejemplos que nos facilitas en tu Blog como me pude iniciar en el uso de esta librería para tener una aplicación multi-idioma, y todo funciona bastante bien en general. El único problema es que en tiempo de ejecución no es capaz de actualizar un array de constantes adheridos a un Resourcestring como el ejemplo (solo lo hace si reiniciamos la aplicación por completo). Entonces para solventar esta cuestión está el truco de enlazar las constantes del array directamente con las posiciones de memoria (de los resourcestring) usando punteros, lo cual funciona bien en Lazurus, pero no lo hace en Delphi. El código de ejemplo compila correctamente pero el showmessage se muestra en blanco...y al cerrar provoca una expepción! Última edición por geolife fecha: 28-05-2018 a las 10:13:55. |
#4
|
||||
|
||||
Seguramente es porque, precisamente, son constantes y no se les puede cambiar su valor.
¿Has probado si funciona igual si no son const? |
#5
|
||||
|
||||
Hola Casimiro!
Si, acabo de probar usando un Var en vez de Const; y tenemos el mismo resultado. Adjunto el ejemplo simplificado con puntero y sin el, en el primer caso Showmessage funciona bien, en el segundo caso no lo hace...
|
#6
|
||||
|
||||
@Neftali [Germán.Estévez] ; @Casimiro Notevi
Gracias por vuestra ayuda, finalmente al plantear también la cuestión en stackoverflow hay un camino que sugiere Stefan Glienke y lo dejo aquí compartido, por si cualquiera se encuentra ante el mismo problema. https://stackoverflow.com/questions/...resourcestring Básicamente se trata de lo siguiente:
Última edición por geolife fecha: 28-05-2018 a las 16:28:57. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
punteros | pepe_baile | C++ Builder | 4 | 24-07-2016 11:19:57 |
Punteros | kotai | Varios | 1 | 09-08-2010 16:26:34 |
uso de punteros | David | OOP | 19 | 14-12-2009 09:48:37 |
C++ y los punteros | marcoszorrilla | La Taberna | 3 | 02-06-2008 18:31:11 |
Punteros | davitcito | Varios | 2 | 25-04-2005 22:46:24 |
|