![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
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 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. |
|
#2
|
||||||
|
||||||
|
Hola,
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
|
|
#3
|
|||
|
|||
|
Gracias dec y a todos.
Quedó superclaro. Lo que más me cuesta del delphi es cambiar el modo de pensar durante la programación, y eso que me dediqué a hacer una flujograma para mi proyectito pero a pesar de eso me vuelvo un pastel con los objetos a veces. Bueno, con el tiempo y sus excelentes ayudas lo voy a superar.... Muchas Gracias. |
|
#4
|
||||
|
||||
|
Resumiendo sería: "Mas vale prevenir que curar"
Como bien has dicho, la excepción tambien puede ocurrir por otra causa; asumir que se ha producido porque el objeto no esté creado, es demasiado ![]() Cita:
Un TEdit, colocado en el form1, pertenece al Form, por tanto, al cerrar la aplicación: - Application manda destruir a todos los Forms que contiene. - Form1 manda a destruir todos los controles que contiene, entre ellos el Edit De ahí que todos los objetos que son contenedores, TForm, Tpanel, etc, tengan la propiedad Components y ComponentsCount que es una lista de los controles que ha liberar ese objeto, y el orden en el que se crearon.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|