Programación General > Delphi
Crear Objetos En Tiempo De Ejecución
(1/1)
Deiv:
Hola,
El siguiente código:
--- Código: Text ---procedure TForm1.Button1Click(Sender: TObject);var NuevoForm: TForm; NuevoBoton: TButton;begin NuevoForm := TForm.Create(nil); NuevoForm.Parent := nil; NuevoForm.Left := 100; NuevoForm.Top := 100; NuevoForm.width := 500; NuevoForm.Height := 400; NuevoForm.Caption:='Nuevo Formulario'; NuevoForm.Name := 'MiForm'; NuevoForm.FormStyle:= fsStayOnTop; NuevoForm.Show; NuevoBoton := TButton.Create(NuevoForm); NuevoBoton.Parent := NuevoForm; NuevoBoton.Left := 100; NuevoBoton.Top := 100; NuevoBoton.Caption:='Clickme'; NuevoBoton.Name := 'MiBoton';end; Crea un Nuevo Formulario con un Botón dentro, todo en tiempo de ejecución.
1.- ¿Cómo DESTRUYO (Free=donde coloco?) estos objetos al cerrar la 2da ventana (NuevoForm) creada?. Lo que pasa es que cada vez que clicko el Button1 me crea muchos Forms incluido su botón. Lo que necesito es crear una sola vez, por mucho que le dé n-veces click al Button1.
2.- No recuerdo cual es la propiedad de un Form que por ejemplo AL CREAR el 2do Form:
.....2a) ¿Cómo ubico por encima del principal?, es acaso...FormStyle:= fsStayOnTop? y
.....2b) ¿Cómo deshabilito el Form principal mientras esté activo el 2do Form hasta que lo cierre?
Enko:
1) Par adestruir usa el evento onDestroy o similar del form principal
2) para desactivar el form principal mientras usas el segundo, en vez de usar Show(), usa ShowModal().
Deiv:
OK.....,
Pero en que lugar del código coloco esas instrucciones?
Enko:
--- Citar ---Pero en que lugar del código coloco esas instrucciones?
--- Fin de la cita ---
--- Citar ---en vez de usar Show(), usa ShowModal().
--- Fin de la cita ---
--- Código: Text --- NuevoForm.Name := 'MiForm'; NuevoForm.FormStyle:= fsStayOnTop; NuevoForm.ShowModal; Saludos.
Navegación
Ir a la versión completa