Hola amigos, voy a plantearos algo que me ha dejado perplejo.
Tengo un programa de quinielas hecho hace varios años en Delphi7.
Ahora estoy modificando algunas cosas con motivo del nuevo pleno al 15.
Guardo en un fichero los datos de cada jornada, en una variable tipo record.
Voy leyendo los registros, según la jornada que voy a trabajar.
Cuando tengo que modificar algún dato, utilizo algunas variables intermedias, para comparar si ha habido algún cambio.
Dado que las variables las tengo
declaradas con comas, cuando interesa utilizo la asignación:
Paso los valores de la variable2 a un formulario de modificaciones.
Hago las modificaciónes en la variable2 y luego las paso a la variable1, si inateresa.
Esto lleva años funcionando correctamente.
EL PROBLEMA
Ahora he añadido algunas variables más en el record.
SORPRESA
Cuando intento rellenar el formulario con los datos de la variable2 en el evento OnShow, una parte de ellos no se rellenan.
Al comparar las dos variables, me dice que los valores son distintos, por lo que he llegado a la conclusión de que no traspasa bien los valores de una a la otra.
La asignación las variables está en el evento OnShow.
De manera que si salgo del formulario de modificación varias veces y vuelvo a entrar, va asignando los valores poco a poco, hasta asignarlos todos.
(¡¿?!) Esto me tiene perplejo......
Más aún cuando he comprobado los valores que no traspasa, antes de ponerlos en los distintos Edit del formulario, y he comprobado que no están.
Pero ahí no queda la cosa, he utilizado otra variable asignada en el form de lectura de fichero y
¡Sí ESTÁN LOS VALORES COMPLETOS!
Bien, me dije, pues voy a asignar los valores al leer el registro, a ver qué pasa. PUES TAMPOCO.
Bueno, me dije, será el nombre: PUES TAMPOCO
Bueno, me dije, el orden de declaración (una chorrada) PUES TAMPOCO
Llevo 3 días revisando el código y no consigo ver el motivo de esto.
Por favor, si alguien ha tenido esta experiencia o si puede aportarme alguna idea, (estoy abierto a probar cualquier cosa), se lo agradeceré infinitamente.
Gracias por aguantar el rollo, pero no sabía explicarlo de otro modo.