![]() |
Asignar NIL a un formulario
Hola a todos
Como puedo asignar el valor nulo a un formulario que creo dinamicamente, y lo libero utilizando screen. Si hago de esta forma, me da este error cuando lo compilo "Cannot assign to a read-only property"
Si hago de esta otra forma, me da este error cuando lo compilo "Constant object cannot be passed as var parameter"
Muchisimas gracias por adelantado |
hubiera sido bueno que expliques como desear utilizar eso, si es para luego iterar en screens puedes usar la funcion assigned que te dice si un puntero tiene una referencia valida
|
No entiendo porque quieres hacer eso. Al eliminar el formulario con Free también es eliminado de la lista Forms, ya no esta en la lista. De echo si quieres eliminar todos los formularios la forma correcta seria empezar por el ultimo, de lo contrario te dará error, es decir:
|
Muchisimas gracias a los dos por responder, quiero hacer de esa forma porque creo mi menu dinamicamente y lo cargo en un TreeView, y cuando voy moviendome entre los items o haciendo un click en el item muestro su forma correpondiente en un panel, pero antes de mostrar la nueva fora libero la anterior forma cargada con Free. Mi problema es el siguiente que si hago dos veces click en el mismo item se carga la forma primero despues se destruye y se vuelve a cargar, lo que yo quisiera es poder preguntar si la forma (teniendo su nombre como cadena), ya ha sido creada para no volver a crearla.
La primera ves cuando la forma no se ha creado apunta a nulo, todo bien hasta, pero cuando ya se ha creado y despues lo libero con Free o Destroy, no apunta a nulo entonces como hago la pregunta, porque no funciona tampoco con assigned. Espero se entienda, creo que me estoy enredando mucho. |
Si te entiendo, tu creas una forma y utilizas una variable que apunta a ella. Algo como esto:
Sin embargo a la hora de borrarlo utilizas la lista Forms de la variable Screen, supongo que lo haces así para no tener que preocuparte de que formulario fue el ultimo que abriste. Pero como has dicho, el contenido de la variable no cambia y esta pasa a apuntar a una forma que ya no existe. Se me ocurre una posible solución:
Esta función te dirá si la variable apunta a una forma real, o por el contrario su valor ya no sirve. |
Si, asi lo hare seoane, muchisimas gracias
|
La franja horaria es GMT +2. Ahora son las 06:27:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi