Cita:
Empezado por nlsgarcia
Pregunto: ¿Ha alguien en el Club Delphi le ha pasado en alguna versión de Delphi algo similar a lo comentado en este hilo?
|
A mí, y estoy seguro que a muchos otros compañeros también les ha ocurrido.
Creo que la gran mayoría de los programadores que venimos de Turbo Pascal o de Visual Basic (perdón que haga mención a algo tan bueno junto con algo tan malo), hemos aprendido aquella popular lección de por qué la sentencia
With de Delphi debe ser empleada bajo cautela.
pacopenin: Supongo que "Datos" es un módulo de datos o algún otro objeto que, como sucede en el caso de los formularios, también posee una propiedad llamada
Name (todas las clases derivadas de TComponent la heredan de ésta). Y hay que decir que el depurador es muy bueno para determinar el ámbito de un identificador añadido a la lista de observaciones, excepto cuando se trata de algún miembro sin calificar perteneciente a un objeto indicado en
With...Do.
En términos llanos, el depurador está evaluando la propiedad Name del formulario, pero el
If está evaluando la propiedad Name del objeto, registro o interfaz
Datos.
Desde luego solo tú, que tienes el código, podría confirmar si mi teoría es cierta.
Un cordial saludo.
Al González.