Cita:
Empezado por AgustinOrtu
Cuando tiramos un query desde tiempo de diseño, no hay que andar haciendo chequeos para preguntar si puedo acceder al objeto o a sus propiedades (dejando de lado aquellas que hay que asignar desde afuera como Connection, etc) simplemente el objeto esta ahi, disponible en todo momento para mi; por algo esta declarado en la parte publica del form, tiene un alcance "global" dentro del form, y no limitado dentro de un metodo. A mi me resultaria muy extraño llegar a pensar que ese puntero pueda tener NIL
|
Está claro que en ese punto no tiene sentido utilizar FreeAndNil, es más, es que en ese caso ni siquiera tendrás que usar un Free, pues no viene al caso.
Pero hay muchos otros objetos que se generan durante una ejecución y que se deben liberar.
Se me ocurre un ejemplo sencillo. ¿Has pasado alguna vez un objeto como parámetero en un procedimiento?
Mira este método, que viene del clubdelphi y que ahora mismo tengo en pantalla.
Código Delphi
[-]
procedure FindFiles(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
Imagina que el último parámetro es opcional.
Se convertiría en:
Código Delphi
[-]
procedure FindFiles(StartDir, FileMask: string; recursively: boolean; FilesList:TStringList=nil);
¿Has usado algo así alguna vez?
En este caso y según lo que hagas antes deberás asignar nil de forma obligatoria.