Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   aplicacion con 2 form (https://www.clubdelphi.com/foros/showthread.php?t=44240)

totote 31-05-2007 22:50:52

aplicacion con 2 form
 
buenas gente, quisiera saber como hago para que una aplicacion tenga mas de un form, lo que intento hacer es una grilla con datos de un db, ponerle una barra de menu y una de las opciones de la barra es agregar dato, cuando hago click ahi quiero que me aparezca lo que seria el form2 y el form1 se quede inactivo, cuando termino con la carga de datos que se cierre el form2 y se vuelva a habilitar el form1, si alguien me puede ayudar gracias :D

Caral 31-05-2007 23:00:14

Hola
Para que se muestre un nuevo from hay varias formas una:
Código Delphi [-]
  FForm2:=TFForm2.Create(self);
   try
  FForm2.ShowModal;
   finally
  FForm2.Free;
   end;
No se si es esta tu pregunta, tal vez si la amplias un poco.
Saludos

totote 31-05-2007 23:44:27

puede ser asi?
 
puede ser asi, xq me funciona pero no se si es un buen uso de codigo :P

para llamar el formulario:
Código Delphi [-]
procedure TForm1.Agregar1Click(Sender: TObject);
begin
  form3.Show;
  form1.Enabled:= false;
  form3.Enabled:= true;
end;

para volver al formulario principal:
Código Delphi [-]
procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  form1.Enabled:= true;
  form3.Enabled:= false;
  form3.Hide;
end;

egostar 31-05-2007 23:49:24

Hola totote, has uso del ShowModal en lugar del solo Show.

Código Delphi [-]
procedure TForm1.Agregar1Click(Sender: TObject);
begin
  form3.ShowModal;
end;

En Form3 debes tener un botón que cierre form3

Código Delphi [-]
procedure TForm3.SalirClick(Sender: TObject);
begin
  Close;
end;

Edito: Como ya muy bien te lo había comentado mi amigo Caral

Salud OS.

totote 31-05-2007 23:54:38

eso hace esto?
 
eso por lo que veo hace lago asi como ventana activa, mientras este activada el resto se desabilita, me ahorraria el codigo de activar y desactivar los formularios no? grax :D les debo una hermano o hermano jeje :P

Caral 01-06-2007 00:03:48

Hola
Como dice el maestro egostar, es mejor usar ShowModal, pero, aqui siempre hay un pero, hay que tener en cuenta una cosa:
Cuando se hace un proyecto este va creciendo en cuanto a codigo y forms, puede poseer muchos de estos, si te fijas en el proyecto, en el unit de este, veras que todos se inician con la aplicacion, que pase, que a medida que crezca esta, se va haciendo mas lento el arranque del programa, porque tiene que iniciar cada form, lo uses o no, por eso uso el codigo que puse al pricipio y en proyect options, paso de la parte auto create forms a la parte Available forms los que no inicien el programa, con esto reduzco el tiempo de arranque mucho.
Bueno esto te lo comento nada mas para que lo tengas en cunta y conozcas un poco mas Delphi.
Saludos
Nota: Maestro y amigo egostar, siempre atinado, que envidia.;)

totote 01-06-2007 00:14:16

que buen dato
 
gracias Caral por el dato como digiste es bueno saber algo mas de delphi ahora lo que me queda es averiguar bien como funciona, si me podrias pasar un tutorial de como hacerlo desde cero asi queda bien aprendidito jeje

Caral 01-06-2007 00:28:33

Hola
Club Delphi y preguntar.
Bueno tambien esta el libro la cara oculta de delphi, etc.
Saludos

marcosl 01-06-2007 21:49:59

solo opino..
 
Si esta perfecto lo que dice Caral hoy por hoy hay proyectos que puede tener decenas de formularios, por eso esta bueno liberar la memoria etc etc pero en el caso de totote solo quiere usar dos formularios, por que complicarle la vida, asi que por ella opto por el codigo aportado por Egostar (Show o ShowModal) simple y sin complicacion.

Caral 01-06-2007 23:15:41

Hola
La idea de estas respuestas es hacerlas un poco generales, recuerda que no solo totote va a leer este hilo, otros lo haran y tal vez tengan a bien aprender a hacer lo que mencione, es solo dar un poco mas de informacion.
Saludos

marcosl 01-06-2007 23:55:21

Si si.
 
totalmente deacuerdo con vos Caral por eso el titulo de mi comentario fue "Solo Opino" y dentro de el hay cosas como "hay proyectos que puede tener decenas de formularios" haciendo referencia al poder de tu pedacito de codigo, pero como dice mi firma...

saludos que esten toddos bien frente a un monitor me voy a seguir leyendo C#.

AzidRain 02-06-2007 00:44:24

De todos modos lo que dice Caral es una muy buen práctica que los nuevos programadores deben aprender en sus inicios. Finalmente no pasa nada si lo haces con 1 o 2 forms, pero que tal cuando tengas 40 o 50, si lo haces como rutina nunca tendras que preocuparte por ese detalle.

Rutina:

1.- Crear un nuevo form en el IDE y ponerle nombre empezando por F (Fnuevocliente, FVisor..etc.).
2.- Guardar la unidad añadiendo una U al nombre del form: (UFNuevoCliente, UFVisor...etc.)
3.- Abrir Project-Options y quitar el form del autocreate
4.- Ir a donde voy a llamar al form y meter el try...finally (puedes usar el Control-J y escoger la plantilla que ya trae Delphi.

Haciendo siempre esto nunca se tienen problemas por exceso de forms además de que el código queda mas que legible

egostar 02-06-2007 01:50:19

Cita:

Empezado por marcosl
saludos que esten toddos bien frente a un monitor me voy a seguir leyendo C#.

Eso fue advertencia a amenaza estimado marcosl mira que aqui hay muchos anti MS.:D :D

No te creas, es solo para darte la bienvenida a este club, disfruta tu permanencia y de paso te invito a leer nuestra guia de estilo y la otra guia de estilos.:)

Salud OS.

totote 02-06-2007 05:31:06

nunca es malo un poco de info
 
como ya dije muchas gracias por la ayuda y los datos, tanto de caral como de egostar, tienen razon azidrain en lo de educar a los programadores que recien nos iniciamos, y tambien tiene razon marcosl en que por ahi tratar de adquirir tantos conocimientos de una puede ser medio chokante y hasta en algunos casos terminar sin entender nada, pero me parecio bien que caral fundamentara su codigo, y para dejarlo como dato para tener en cuenta. saludos

roman 02-06-2007 08:50:30

Una buena costumbre apenas instalamos Delphi:

Abrir Tools|Environment Options, y en la pestaña Designers desactivar la casilla "Auto create forms and data modules"

Así, cada nuevo proyecto que iniciemos, pondrá sólo el formulario principal en elAuto Create y todos los demás en Available.

// Saludos

AzidRain 03-06-2007 00:59:43

Jajajaja me ganaste el post Roman...ni hablar..

totote 24-07-2007 23:45:39

vuelta la burra al trigo
 
volviendo al tema, en el primer post de caral posteo este codigo

Código Delphi [-]

FForm2:= TFForm.Create(self);
try
   FForm2.ShowModal;
finally
   FForm2.Free;
end;

eso lo que haria es crear "dinamicamente" un formulario, seria cargar un formulario ya creado en memoria no?

si es asi, la pregunta es, como hago para que delphi no me los cargue en memoria al inicio?

saludos y espero que esten todavia :S

Caral 25-07-2007 00:18:50

Hola
La respuesta la tienes en este mismo hilo en el post 12 de AzidRain.
Saludos

totote 25-07-2007 00:36:33

ahhh okis grax caral


La franja horaria es GMT +2. Ahora son las 18:35:24.

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