Cita:
Empezado por roman
Assigned es esencialmente lo mismo que la comparación con nil por lo que si falla uno también el otro.
|
Como dije, Assigned es
esencialmente lo mismo que la comparación con
nil. Puse la palabra esencial, precisamente porque acababa de ver el artículo que citaron. Aunque si se lee con cuidado, notarán que la diferencia no aplica en el caso de un objeto sino de un apuntador a método.
De todas formas, a mi en lo particular me gusta más usar Assigned en
todo caso, por una cuestión de legibilidad, pero eso ya es gusto personal.
Cita:
Empezado por Caro
Tengo una pregunta yo pense que si no creabas el objeto apuntaba a nil no importando que sea una variable global o una local, acabo de hacer la prueba, si es una variable local no apunta a nil
|
Así es en efecto
Caro, la misma documentación de Delphi señala que las variables locales no se inicializan. La razón la desconozco, aunque pudiera deberse a que esas variables viven en la pila o
stack de manera que, en realidad, no hay nada que inicializar sino hasta que se llama la función.
Cita:
Empezado por donald shimoda
Esto es absolutamente válido :
Código Delphi [-]
procedure HacerAlgoyLimpiar;
var
ds : TClientDataSet;
begin
try
ds.create(self);
finally
FreeAndNil(ds);
end;
end.
|
No sé a qué te refieres con válido. Quizá te refieras a que compila, lo cual es cierto. Pero para que futuros lectores no se confundan creo que es bueno aclarar que una construcción así es garantía de problemas.
// Saludos