Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

AutoCreate Forms & Available Forms

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: AutoCreate Forms & Available Forms Responder citando

Hola amigos del foro

Quiciera hacer una pregunta del BCB 6. Cuando pinchamos en Project->Options->Forms, hay dos posibilidades de poner los forms una en Autocreate y otra en Available, no tengo bien claro para que sirven estas dos opciones, ni cuales son sus utilidades, solo he visto que cuando se usan formularios padre e hijo (MDI) los hijos se deben poner en Available, pero mas que esto no se.Podrian explicarme que utilidades tienen estas opciones, y se es conveniente usarlas?
Gracias y saludos
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Hola amigo, te voy a decir mi experiencia:

1.- Normalmente solo dejo en autocreate las formas que quiero que vea mi usuario automáticamente
2.- Pongo en available las formas que quiero que accesen por alguna otra forma como un menú o algo.

Puedes checar un programa completo desde este enlace:
[url] http://www.bastoexpress.com/FacturExpress/instalacion/instalar.html
[/url]
y podrás observar como uso las formas.

Gracias
_________________
La caja decía, requiere Win95 o superior así que instalé Linux.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

si los pones en avaiable no se autocrean los formularios, los creas tu con new.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola amigos
muy agredecido de la respuesta de los dos, pero aun no me queda claro cuales son las ventajas de poner los formularios en autocreate o en available
gracias
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Bien un poco largo de explicar que trataré de hacerlo lo mas sencillo.

Establecer todos los Form's en la parte Autocreate puede resultar un consumo excesivo de memoria ram, pues si pones todos los formularios "disponibles" para el usuario y este solo usa 2 o 3 como parte principal, quiere decir que los otros formularios que aún no se han usado, existen en la memoria de la computadora y "viven" literalmente desde que inicia el ejecutable hasta que este se muera o cierre.

El ponerlos en Available, significa que el programa reconoce que estos existen pero que aun no pueden ser usados, si no que deben ser creadas instancias a travez de la forma.

Código:
TForm23 *formNo23 = new TForm23(this);
form23->Show(); // puede ser asi


o bien puede ser

Código:
TForm23 *formNo23 = new TForm23(this);
form23->ShowModal(); // mas efectiva para liberar memoria
delete form23; //


Cuando existen varios Forms en la parte de Auto-create, el sistema debe elegir cual es el form que debe presentarse primero, si tienes 60 formularios dentro de Auto-create form, pues primero se deben crear los 60 formularios y posteriormente tu aplicación se ejecuta, cuando pasas los formularios que no deben crease de manera automatica a la parte de Available el consumo de memoria ram se optimiza y tu ejecutable tarda menos, consumes menos recursos de maquina y tu sistema se vuelve mas rápido, todo ello por que solo has puesto en Auto-create el o los formularios que deben iniciar primero.

En algunos casos o generalmente se usa que en la parte de Auto-create se establezcan:
- Modulos de Datos
- Programa Principal (Menú)
- Algún form que sea extricamente necesario mantenerlo "vivo" durante todo el programa

Y en la parte de Available todos aquelllos formularios que el programa requiera.

Espero que esta información te sea de útilidad y tu pregunta haya sido contestada.

Saludos!!
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Agradecido Responder citando

Hola Cesar
Tremendamente agradecido con tu explicacion, gracias tambien a los amigos que me contestaron anteriormmente...
Cesar solo me quedan pequeñas dudas aca te dejo un pedazo de mi codigo, por si tienes la oportunidad de revisarlo e indicarme si lo hago bien o me falta algo me mandes sugerencias, gracias

en el Formulario principal, para hacer la llamada

Código:
if (frmAgregar == NULL){
    frmAgregar = new TfrmAgregar(this);
    frmAgregar->Show();
}


en el formulario que se creo al cerrar

Código:
Action = caFree;
frmAgregar = NULL;


como puedes ver Cesar lo que hice fue similar a como se hace en los formularios MDI, porque es lo que maso menos estuve viendo un tiempo, pero si no asi , por favor explicame.

mensje editado
Cesar ahora mismo intente ponerlo en ShowModal en ves de Show y me da un error que dice Can not make a visible window modal... que puede suceder?

gracias y saludos
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

las MDI child no pueden ser modales. Yo creo un frame y hago una forma MDI y le pego el Frame, y cuando necesito que sea una vista Modal
creo una forma en tiempo de ejecución y le pego el frame
Código:

  Tdlg_okcancel* Dlg_datos;
  Dlg_datos = new Tdlg_okcancel (this);
  Dlg_datos->AutoSize = false;
  TFrame_datosemp *Frame_datosemp;
  Frame_datosemp = new TFrame_datosemp(Dlg_datos);
  Dlg_datos->Caption = "Datos del Empleado";
  Dlg_datos->Width =  pnl_datosemp->Width + 80;
  Dlg_datos->Height =  pnl_datosemp->Height + 100;
  Frame_datosemp->Parent = Dlg_datos->Panel1;
  Frame_datosemp->inicializa();
  Frame_datosemp->edt_codvnd->Value = dm->qry_maxidvnd->FieldByName("clave")->AsInteger + 1;
  if(Dlg_datos->ShowModal() == mrOk) {
    // Aqui pones lo que tengas que poner
  }


el dialg_okcancel es una forma que solo tiene
Cita:

______________________________
| panel1 |
|---------------------------------------- |
| [OK] [CANCEL] |
|_____________________________|



si quieres que te pase un ejemplo visita mi página http://www.batoexpress.com y mándame un correo tron_xx@hotmail.com
_________________
La caja decía, requiere Win95 o superior así que instalé Linux.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Efectivamente los Form's tipo MDI child, no pueden mostrarse como ShowModal de la manera que lo estas haciendo, esto conlleva a que la propiedad Visible de tu form se encuentra en True.

Debes generar un analisis de tu software para determinar que Form's deben iniciar, que Form's deben crearse a petición del usuario y algo muy importante, debes indicar que Form's deben presentarse con ->ShowModal() ya que esta forma es muy util, para cuando se requiere la participación del usuario en una respuesta concreta y no se puede o debe continuar hasta que el usuario haya realizado una petición o algun movimiento que el sistema debe tratarlo solo.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

Gracias migos por responder
O me fui del tema o ando perdido.Hasta ahora yo no he dicho que estoy haciendo forms tipo MDIChild, solo le dije a Cesar que estaba mostrando los formularios que estaban en Available como indican en el foro que deben mostrarse los MDIChild, porque realmenete no se de que otra forma mostrarlos. Pero esos form que estan en Available los tengo en FormStyle=fsNormal no en MDIChild y la cuestion ahora que nos entendemos es: como puedo hacer para mostrar esos forms de tipo modal?
o es que al ponerlos en available ya se debe tratar con ellos como los de tipo MDI Child?
por favor orientenme, gracias
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Es correcto lo que me comentas, lo unico que nos ha llevado a los MDI-Child, es que cuando te aparece el mensaje que no pueden ser creados por que estan visibles , es por que tienen la propiedad visible a true, esa propiedad solo se establece de manera automatica a true, cuando han sido MDI-Child, por ello era el comentario anterior.

Pues solo eso, lo importante es que revises los formularios y verifiques aquellos que tienen la propiedad visible a true.

Saludos.
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

gracias Cesar, ya entendi, muy agradecido , mis respetos
_________________
Todos somos ignorantes, lo que no todos ignoramos lo mismo...
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.