![]() |
no cargar varias form en una instancia...
hola a todos, en delphi hay alguna manera de que desde una forma pueda llamar a otra forma por medio de un boton pero si se vuelve a oprimir el boton ya no vuelva a cargarse.
es evidente que se consiga con el codigo de: frm1 := frm1 .Create(Self); frm1 .Show; Esto me permite regresar a mi form donde la llame, pero por si acaso un usuario vuelve a oprimir el boton llamara a cargarse la form de nuevo, quisiera saber si es posible evitar esto que se cargarse mas de una vez. muchas gracias. |
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 |
Hola:
Saludos. |
|
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 |
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 |
La franja horaria es GMT +2. Ahora son las 12:55:30. |
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