¡De Locos! Delphi 11 cambia el índice de las Strings
Hola sufridores. (Quizá sea yo sólo el sufridor)
Otro problema. Al tratar de compilar App's antiguas con Delphi 11 compruebo que ha cambiado el índice de las Strings para compilaciones Android. Antes estaba basado en 0 (cero) y ahora está basado en 1 (uno) ¿Que cómo lo he descubierto? Muy sencillo: os reproduzco los cambios necesarios para que funcione la app con Delphi 11 (Con Delphi 10.3.3 todavía funcionaba) Código anterior, Funcionando hasta delphi 10.3.3
Con Delphi 11 dispara el mensaje con el valor de S2 Con esta corrección ya no dispara el mensaje y toma los valores correctos:
ESTO ME OBLIGA A REVISAR CUALQUIER APP ANTERIOR SI LA COMPILO CON DELPHI 11 ¿Alguien puede decirle a Embarcadero que ésto no debe hacerse? Saludos a todos |
Hola a todos,
Esta página en la Wiki de Embarcadero tal vez pueda ser de tu interés. Aparentemente, podrías utilizar lo siguiente para que los "strings indexes" siguiesen comenzando por cero:
|
MUCHAS GRACIAS dec.
Me has ahorrado mucho trabajo. Ya he visitado el enlace y lo he entendido. Sin embargo, no deja de ser una faena de Embarcadero. Además he visto que han cambiado otras cosas, lo que me oobligará a ir revisando las App's. Dado que las aplicaciones tienen varios formularios y yo no suelo usar directivas especiales, (uso las que están por defecto, además de ser sólo un aficionado). No sé si tengo que usar la directiva en cada Form o sólo en el de arranque. Sácame de dudas, por favor. GRACIAS DE NUEVO. Saludos cordiales. |
Vale dec.
No hace falta que me respondas. He comprobado que la directiva {$ZEROBASEDSTRINGS ON} debe incluirse en cada Unit que lo necesite. Saludos. |
Lo que me parece raro es que antes el índice estuviera basado en 0, cuando desde siempre en Pascal las cadenas empiezan en 1. El error fue ese.
|
Hola a todos,
Cita:
P.D. No estoy seguro de si dicha opción podría ponerse en el archivo DPR después de haber incluido todas las unidades... o de si se podría y sería por tanto mejor hacerlo en el archivo del proyecto "arriba del todo", antes de que se incluyan el resto de unidades, con la idea (incluso para que quede más claro) de que la opción se aplique en todo el proyecto y en todas las unidades que dicho proyecto va a requerir después. |
La franja horaria es GMT +2. Ahora son las 09:43:07. |
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