![]() |
![]() |
| 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
|
||||
|
||||
|
Una opción sencilla:
y sólo tienes qe asegurarte de que cuando se cierre el formulario vuelvas a poner la variable frm1 en nil. Esto lo puedes hacer en el evento OnClose del formulario. Esto suponiendo que al cerrarlo también lo destruyes. Si sólo lo ocultas entonces sería:
// Saludos |
|
#3
|
||||
|
||||
|
#4
|
|||
|
|||
|
muy bien pero, si cierro la ventana segunda ya no se vuelve a cargar, debo de cerrar la primer ventana y solo a si me vuleve a abrir la segunda ventana, el codigo corregido es este:
if frm2 <> nil thenbegin frm2 := Tfrm2 .Create(Self); frm2 .Show;end; frm1 pricipal ventana frm2 segunda ventana gracias |
|
#5
|
||||
|
||||
|
A ver. Creo que ya nos liamos.
El código que pones no es correcto según la aclaración que hice en el último mensaje. En frm1, para abrir el segundo formulario pones:
En el evento OnClose del segundo formulario pones:
Si el segundo formulario está abierto entonces frm2 es distinto de nil y la condición en el primer código evita que se cree de nuevo. Cuando cierras el segundo formulario, la asignación Action := caFree hace que el formulario se destruya y la asignación frm2 := nil vuelve a poner a nil la variable con la que te refieres al formulario. Entonces, cuando vuelves a intentar abrirlo, la condición (frm2 = nil) es ahora cierta y se vuelve a crear. En cualquiera de los dos casos el formulario se muestra. Si ya existía, frm2.Show garantiza que se ponga al frente en caso de haber estado oculto por otra ventana. // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|