Ver Mensaje Individual
  #1  
Antiguo 27-08-2014
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Pasar valores entre variables tipo record

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:
Código Delphi [-]
 
variable2:=varible1;
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.
Responder Con Cita