Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 12-10-2005
CelestronFan CelestronFan is offline
Miembro
 
Registrado: oct 2005
Posts: 14
Poder: 0
CelestronFan Va por buen camino
Bueno, muchas gracias por la explicación tan detallada.

A ver si estoy en lo correcto, en conclusión nil, Assigned y Freeandnil se usan para corroborar si el objeto sobre el que se va a actuar está creado en memoria y en caso contrario actuar sobre la excepción que se generaría.

Entonces mi pregunta es, en lugar del nil ¿Se puede usar un bloque de este tipo?
Código:
 Try  
   sentencias... 
 Except 
   sentencias... 
 Finally o Raise 
   sentencias... 
 end
Es decir (usando el ejemplo de Lepe) podría hacer algo como esto?:

Código Delphi [-]
  private 
   nodo:TTreeNode;
 end;
 implementation
 
 // inicializamos el valor de nodo
 //procedure TForm1.Form1Create;
 //begin
 //  nodo := nil;
 //end;
 
 // accedemos al nodo o lo creamos si es necesario
 procedure TForm1.button1Click;
 begin
    Try
        nodo.text:= 'si ';
    Except
        nodo := TTreenode.Create(self);
        nodo.text:= 'si ';
  end;
 end;
 
 // al salir liberamos el nodo
 // si tienen nil no hace nada
 // si ha sido creado, lo libera
 
 procedure Tform1.FormClose;
 begin
   freeandnil(nodo);
 end;
La idea no es evitar manejar el nil, sino entender bien como hacerlo y saber si este tipo de casos se puede tratar como una excepción cualquiera.

Aunque me parece que no, porque haría lo indicado para cualquier tipo de excepción y no solo cuando el objeto no exista....

Si el control que estoy manejando pertenece a la forma principal de mi programa (me refiero a un control normal, que no se cree a posteriori en runtime) entonces no tendría sentido usar el nil, pues todos los controles de la forma se crean y asignan en memoria con Application.CreateForm(...
antes de que delphi ejecute Application.run,

...o ¿es que no he entendido que un control puede estar mostrado en una forma pero no asignado a memoria?

Gracias.
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 03:56:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi