Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-10-2021
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
¡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
Código Delphi [-]
S2 := Memo1.Text;


       while S2.IndexOf(' ')<>-1 // Quitamos Blancos
       do s2:= S2.Remove(S2.IndexOf(' '),1);

       // Cambiamos puntos por comas
       s2:= S2.Replace('.',',');

     
       EsNum := True;

       for xx:=0 to S2.Length - 1
       do  if not CharInSet(S2[xx], ['0'..'9', ',', '-'])
           then EsNum := False;
           if EsNum = False then ShowMessage(S2);

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:
Código Delphi [-]
S2 := Memo1.Text;


       while S2.IndexOf(' ')<>-1 // Quitamos Blancos
       do s2:= S2.Remove(S2.IndexOf(' '),1);

       // Cambiamos puntos por comas
       s2:= S2.Replace('.',',');

     
       EsNum := True;

       for xx:=1 to S2.Length 
       do  if not CharInSet(S2[xx], ['0'..'9', ',', '-'])
           then EsNum := False;
           if EsNum = False then ShowMessage(S2);

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
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 20-10-2021 a las 19:51:42.
Responder Con Cita
  #2  
Antiguo 21-10-2021
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
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:
Código Delphi [-]
{$ZEROBASEDSTRINGS ON}
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 21-10-2021
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
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.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)

Última edición por jhonalone fecha: 21-10-2021 a las 15:13:35.
Responder Con Cita
  #4  
Antiguo 21-10-2021
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Poder: 17
jhonalone Va por buen camino
Vale dec.
No hace falta que me respondas.
He comprobado que la directiva {$ZEROBASEDSTRINGS ON} debe incluirse en cada Unit que lo necesite.
Saludos.
__________________
"Pedid y se os dará; buscad y hallaréis ..." (Lc 11,9-10)
"...si no tengo caridad, nada soy..." (1 Cor 13,1-13)
Responder Con Cita
  #5  
Antiguo 29-10-2021
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
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.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #6  
Antiguo 30-10-2021
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola a todos,

Cita:
Empezado por jhonalone Ver Mensaje
Vale dec.
No hace falta que me respondas.
He comprobado que la directiva {$ZEROBASEDSTRINGS ON} debe incluirse en cada Unit que lo necesite.
Saludos.
¿Estás seguro de eso? Uno diría que si pones esa opción en el archivo del proyecto (DPR), debería surtir efecto en el resto de unidades y formularios. Tal vezl algún compañero me contradice con razón, pero, yo diría que no hace falta poner esa opción en cada una de las unidades, sino que bastaría hacerlo en el archivo del proyecto... suponiendo que no pueda hacerse desde las opciones... aunque yo casi que preferiría hacerlo en el archivo del proyecto.

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.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
windows 10 me cambia las cosas en delphi danielmj Varios 13 20-01-2016 06:06:38
Programa en Delphi Ayuda!!!!para locos de la programacion!!! gCrazy Varios 4 08-02-2009 15:07:49
Evalute/Modify, Delphi 5 y Strings de 4KB Lord Delfos Varios 1 28-02-2008 21:54:36
Delphi, ahora strings tuflotas Varios 4 24-11-2007 15:52:51
Delphi y el Indice TIOBE. Epachsoft Noticias 0 05-11-2007 17:05:34


La franja horaria es GMT +2. Ahora son las 22:30:16.


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
Copyright 1996-2007 Club Delphi