![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Miles de gracias por responder gluglu, delphi.com.ar, ArdiIIa, dec.
He estado viendo sobre Owner en este momento porque no lo habia manejado, funciona como quiero pero al final cuando cierro mi formulario principal me sale un error Para mi ejemplito, antes de hacer el showmodal le digo que form2 sera el propietario de form4 y lo mismo hago para form3
y cuando quiero ver quien es el propietario lo hago asi
todo bien, me sale de donde viene la llamada, pero como decia antes cuando cierro el form1 que es el principal me sale 'Exception EAccessViolation in module Project1.exe at 00000000. Access violation at address 000000. Read of address 000000' que estoy haciendo mal, me podrian ayudar por favor.
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
|
#2
|
||||
|
||||
|
Cita:
No se... es la primera vez que veo un InsertComponent para visualizar un formulario. ¿Probaste el código que te puse antes?
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO |
|
#3
|
||||
|
||||
|
Hola ArdiIIa, no lo habia probado tu ejemplo lo siento, queria resolverlo con la propiedad Owner, pero creo que no lo he entendido bien, ahora si probe tu ejemplo me funciona muchisimas gracias, lo hare de esa forma.
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. Última edición por Caro fecha: 08-08-2007 a las 16:14:47. |
|
#4
|
||||
|
||||
|
Yo lo veo más fácil todavía ...
En tu form 'llamante' lo que tienes es que simplemente crear y mostrar modalmente el Form4 así :
Y donde lo necesites en el Form4, preguntas por el Form4.Owner.
__________________
Piensa siempre en positivo ! |
|
#5
|
||||
|
||||
|
Hola cuando creo mi formulario, lo hago de esta forma
de esta no lo habia hecho, al hacerlo asi me sale otro AccessViolation Si me podrias explicar un poquito mas sobre Owner te estaria muy agradecida, espero no estar molestando mucho, pero no me queda claro lo del Owner. Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
|
#6
|
||||
|
||||
|
Todo Formulario (o cualquier otro componente), al ser creado tiene su 'dueño' (Owner), que será aquel componente que lo crea.
Al ejecutar (perdón, fui demasiado rápido en el hilo mío anterior, y la versión correcta está qui debajo) : lo que estás indicando es que cree una instacia del Form4 y la almacene en la variable Form4. Al indicarle el parámetro 'Self', lo que estás indicando es que el dueño será el propio formulario 'llamante'. Self indica que es el propio formulario donde se ejecuta esa instrucción el que debe sustituir al propio parámetro Self, y por ello el propio formulario llamante se convierte en 'dueño' u Owner de la instancia Form4 que acabas de crear. Si pusieras el 'dueño' u Owner de Form4 sería Application, es decir, el Formulario principal de tu aplicación. Para qué sirve el 'dueño' u Owner ? Para liberar de memoria el elemento que se ha creado cuando se destruya el Owner, en caso de no hacer un Free explícito. Si creaste Form4 con el parámetro Self (y pongamos por ejemplo que lo estás creando dentro de Form1), al hacer un Free de Form1, también se eleminaría automáticamente de memoria el correspondiente Form4. Si lo hubieras creado con el parámetro Application, hasta no cerrar el formulario principal, es decir, hasta no cerrar la aplicación completa, tu instancia de Form4 no se liberaría de memoria. A su vez, la propiedad Owner sirve precisamente para preguntar por quién fue llamado un Formulario (por ejemplo). Si creas Form4 dentro de Form1 con : le indicas con Self que el Owner es Form1. Aclaración : Podrías perfectamente poner y el efecto conseguido sería el mismo ya que le indicas que el Owner de la instancia Form4 creada es Form1. A lo mejor así lo ves más directamente. Para terminar, como el Form lo vas a mostrar Modalmente, personalmente me queda más claro que en el propio Form1 (en el ejemplo que estoy poniendo, al ser el que llama al Form4), se ejecute el Form4.ShowModal y no como lo ha indicado ArdiIIa, aunque sobre gustos no hay nada escrito. En cualquier caso, hasta no salir de Form4 (al ser Modal), se continuará con la siguiente línea de código, independientemente si la has puesto dentro del propio Form4 (como indica ArdiIIa) o si has puesto el Form4.ShowModal en el propio form llamante, en nuestro caso el Form1. Espero haberte servido con mi explicación. Saludos ![]()
__________________
Piensa siempre en positivo ! |
|
#7
|
||||
|
||||
|
Miles de gracias amigo gluglu, buenisima tu explicación, ahora si me funciona y esta entendido.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. Última edición por Caro fecha: 08-08-2007 a las 17:37:31. |
|
#8
|
||||
|
||||
|
__________________
Piensa siempre en positivo ! |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Formularios MDI | CoCaInE | OOP | 6 | 25-12-2006 13:25:34 |
| Formularios | Caro | Varios | 5 | 14-07-2005 14:51:30 |
| Formularios MDI | mierteran | Varios | 1 | 03-12-2004 11:28:35 |
| formularios | seduerey | API de Windows | 0 | 05-07-2004 20:34:26 |
| formularios mdi | tango01 | OOP | 22 | 19-11-2003 16:27:34 |
|