![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
|
|
#1
|
||||
|
||||
|
En primer lugar, recomiendo que el TStringList debiera crearse en el OnCreate del formulario y destruirse en el OnDestroy.
En el OnShow basta con que se quede la sentencia Lista.Clear que por ahora está de mas. Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#2
|
||||
|
||||
|
Cita:
suerte
__________________
Conoce mi blog http://www.edgartec.com |
|
#3
|
||||
|
||||
|
Francamente no estoy seguro de que querés decir con "dinámico" y "estático", pero tampoco veo cuales son los argumentos para que el StringList se cree en el OnShow.
De hecho, creo que podría ser en ambos... siempre depende.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#4
|
||||
|
||||
|
Yo opto por el OnCreate, es lo "más seguro para nuestro código", o bien amarrar bien con FreeAndNil la lista, pero es marear la perdiz en este caso. Si queremos tener una lista en memoria a la misma par que un combo, dará igual cargarla después de crear el form que antes de mostrar el form.
Si lo dejas en el OnShow, basta que hagas un : form1.hide; form1.show; form1.hide; form1.show; form1.hide; form1.show; Para crear 3 listas en memoria con los datos repetidos, las 2 primeras listas se quedaran en el limbo de RAM. Y en otro orden..... ¿para qué usas esa lista? ya tienes el combo, podrías utilizarlo para buscar elementos o lo que quieras, mientras no asignes el itemindex del combo, no cambiará la selección del mismo. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 26-01-2008 a las 04:28:55. |
|
#5
|
||||
|
||||
|
Cita:
Cita:
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#6
|
||||
|
||||
|
Cita:
Dinámico: El formulario es creado al vuelo. Antes de iniciar la llamada al formulario debe crearse la instancia. Estático: El formulario es creado al iniciar la aplicación. Al llamarlo, siempre se llama a la misma instancia. Dinámico. Los elementos se destuyen y construyen con el formulario. Estático. Se crean elementos en el evento OnCreate (Elementos creados una sola ocasión) Se destruyen los elementos al cerrar el formulario. Al llamar a la misma instancia, debido a que esta no es creada nuevamente, los elementos a los que se intenta acceder ya no existen pues fueron destruidos al cerrar el formulario. Punto
__________________
Conoce mi blog http://www.edgartec.com |
|
#7
|
||||
|
||||
|
Cita:
Hasta luego. ![]()
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
#8
|
||||
|
||||
|
Completo un poquito más:
Y no tiene nada que ver que se creen dinámicamente o estáticamente las ventanas. El ciclo de vida es el mismo para ambos tipos de Forms. En honor a la verdad, poliburro ha detectado el fallo del access violation, pero creo no ha sabido explicarse porque tanto jachguate como yo lo hemos malinterpretado. 1º- Deja el StringList en el oncreate como lo tenías. Liberas la lista en el OnDestroy. 2º- El access violation es problema de cómo usas tus ventanas, no tiene nada que ver con el TStringList. Si tu ventana se llama FrmClientes (por decir algo) y esa variable la usas en todas tus ventanas, en el Onclose añade:
cuando necesites usar la ventana de nuevo, comprueba si ya está abierta:
Si no usas la variable FrmCliente en tu aplicación, es decir, creas las ventanas así:
Entonces no puedes usar el evento OnClose para poner la variable FrmClientes a nil, siempre deberías usar FreeandNil(f) o de la variable que uses. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. Última edición por Lepe fecha: 26-01-2008 a las 14:00:10. |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Problema con borrado de componentes creados en tiempo de ejecución | harpo | OOP | 5 | 22-12-2007 16:54:55 |
| Borrar los Datasource Creados en tiempo de ejecucion | Nieto | OOP | 2 | 29-11-2007 22:12:19 |
| Destruir Qrlabels creados en tiempo de ejecucion | Ade | Impresión | 6 | 08-10-2006 19:46:28 |
| Eventos en componentes creados en tiempo de ejecucion | joumont | OOP | 3 | 27-12-2005 14:48:23 |
| Objetos creados en tiempo de ejecución | Scocc | OOP | 4 | 13-06-2003 20:55:29 |
|