Despues de releer todo el hilo, creo que la solución es mucho más simple de lo comentado en todos los mensajes, incluido el anterior posteado por mi.
Cita:
Empezado por Clantt
Hola amigos estoy tratando de crear ventanas que se abran en tiempo de ejecución, pero que sean una nueva ventana asi como otro programa,
|
Lo que quieres decir, es que cada ventana actue de forma independiente, es decir, si cierras una que no interfiera con las demás, y esto es intrinsecamente así, uuu sea sé, delphi funciona así.
Código Delphi
[-]
... var
prueba : Tform;
begin
prueba := Tform.create(application);
prueba.show;
end;
Ahí tienes un error: estas poniendo Tform .... ¿pero qué Tform? TForm a secas es la clase base para todas las ventanas.
Si entiendo bien, tienes que hacer esto:
- Diseñas 3 ventanas form1, form2 y form3. (simplemente File --> new --> Form, 2 veces, para añadir los form2 y form3)
- Vas a Project, Options, y quitas el form2 y form3 de la zona Autocreate, y los pones en Available.
- en el Form1 pones 2 botones, y en sus eventos OnClick añades:
Código Delphi
[-]
procedure Tform1.Form1Button1Click(Sender:TObject);
begin
if not Assigned(form2) then
application.Createform(Tform2, Form2)
else
Form2.Bringtofront;
end;
procedure Tform1.Form1Button2Click(Sender:TObject);
begin
if not Assigned(form3) then
application.Createform(Tform3, Form3)
else
Form3.Bringtofront;
end;
Tanto en form2 como en form3, en sus eventos Onclose añades:
Código Delphi
[-]
Action := cafree;
formX := nil;
Donde X será el número 2 o bien 3.
Listo, ya tienes funcionando los form2 y form3 totalmente independientes, y desde form1 puedes crearlos.
Espero que sea lo que necesitas.
saludos