Ver Mensaje Individual
  #13  
Antiguo 14-11-2008
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Reputación: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por roman Ver Mensaje
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);
    // hacer algo con DS
  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
Responder Con Cita