Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-01-2006
dark_c dark_c is offline
Registrado
 
Registrado: ene 2006
Posts: 9
Poder: 0
dark_c Va por buen camino
multiples instancias de un Form

hola, quisiera que alguien me explique si es posible crear multiples instancias de una misma 'Form', digamos ejecutar este sencillo codigo:

Código:
 
for i:=0 to 4 do
begin
   Application.CreateForm(TForm1, Form1);
end;
o este:
Código:
 
for i:=0 to 4 do
begin
  TForm1.Create(Applicacion);
end;
la pc se congela al intentar crear la 2da form, puedo entender mas o menos a que se debe esto, pero no estoy seguro de ello .
he probado con ventanas MDI y no pasa lo mismo, alguien sabe si es posible hacer esto sin tener que usar MDI?
Responder Con Cita
  #2  
Antiguo 31-01-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
El codigo que pones puede ejecutarse sin problemas Aunque no se porque querrias hacer eso. Creas varios forms, pero Form1 solo haria referencia al ultimo. Asi que tendrias problemas para utilizarlos y sobre todo para destruirlos.

De todas formas si es por curiosidad, deberia de poner la propiedad visible a True para ver los formularios que vas creando. El siguiente codigo cre una bonita cascada de ventanas . Aunque como ya dije es incrorrecto crear formularios y no destruirlos despues.

Código:
for i:=1 to 10 do
begin
   Application.CreateForm(TForm1, Form1);
   Form1.Visible:= TRUE;
   Form1.Top:= Form1.Top + (10*i);
   Form1.Left:= Form1.Left + (10*i);
end;
Responder Con Cita
  #3  
Antiguo 31-01-2006
Avatar de fabianbbg
fabianbbg fabianbbg is offline
Miembro
 
Registrado: ago 2003
Ubicación: Corrientes, Argentina
Posts: 80
Poder: 21
fabianbbg Va por buen camino
Smile

Hola DarK_c :
Antes que nada.. bienvenido al foro, espero ayudarte en tu duda.

escribiste:

Cita:
Empezado por dark_c
hola, quisiera que alguien me explique si es posible crear multiples instancias de una misma 'Form',

Si.. no deberias tener mayores problemas

Cita:
Empezado por dark_c
digamos ejecutar este sencillo codigo:

Código:
 
for i:=0 to 4 do
begin
   Application.CreateForm(TForm1, Form1);
end;
o este:
Código:
 
for i:=0 to 4 do
begin
  TForm1.Create(Applicacion);
end;
la pc se congela al intentar crear la 2da form, puedo entender mas o menos a que se debe esto, pero no estoy seguro de ello .
he probado con ventanas MDI y no pasa lo mismo, alguien sabe si es posible hacer esto sin tener que usar MDI?

Mmmm no se porque se te congela la aplicacion..¿ no te tira algun error?
Podrias probar con este codigo.. a ver si te sirve:

Código Delphi [-]
var
     i:integer;
     formNuevo:tform;
begin
     for i:=0 to 4 do
     begin
          Application.CreateForm(TForm1, formnuevo);
          formnuevo.Name:='nuevo'+inttostr(i);
          formnuevo.Caption:=formnuevo.Name;

          formnuevo.Top:=(20+i)*10;
          formnuevo.Show;

     end;

Fijate si te sirve y cualquier cosa.. preguntá nomas sin problemas..

Saludos..
Fabián
__________________
desde Corrientes, Argentina..
Cuna del Libertador de America
Responder Con Cita
  #4  
Antiguo 31-01-2006
dark_c dark_c is offline
Registrado
 
Registrado: ene 2006
Posts: 9
Poder: 0
dark_c Va por buen camino
Estoy muy confundido, no se que paso con mi compilador , ambos teneis razon, el codigo que expuse compila y corre bien, el unico detalle es el que hace notar seoane, que Form1, hace referencia al ultimo form creado, (y se pierde la referencia al los forms anteriores), pero segun la ayuda de Delphi, los forms que hayan sido creados pasando un 'Owner' como parametro al constructor, seran liberados automaticamente (por ese Owner)... bla bla bla..., ¿es esto cierto?, supongo que si... de cualquier forma, en el evento OnClose() de la form, he asignado 'caFree' a la variable 'Action'... espero que asi como lo hize este todo bien (no necesito accesar nada dentro del Form, por eso no necesito las referencias) de todos modos gracias fabianbbg, haciendo pruebas con el codigo hize algo mal y fue cuando se congelo la pc, sin ningun aviso, justo al llamar el metodo Form1.Create(Application), pero fue por haber hecho algo mal dentro del constructor... muchas gracias a ambos por haber contestado.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Evitar múltiples instancias de un mismo form Neomanar OOP 1 09-09-2005 17:10:26
Múltiples instancias de un mismo formulario Neomanar Varios 1 22-08-2005 15:20:29
Evitar Instancias Multiples De Mi Aplicacion edgusano .NET 8 28-04-2005 19:21:02
Multiples instancias Phacko Varios 1 07-09-2004 15:40:25
Impedir mover el form y redimensionar al mover barra tareas jealousy API de Windows 0 15-06-2004 12:58:05


La franja horaria es GMT +2. Ahora son las 22:54:23.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi