Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 29-03-2009
Luisjo Luisjo is offline
Registrado
 
Registrado: mar 2009
Posts: 1
Poder: 0
Luisjo Va por buen camino
Como puedo llamar una pantalla desde un boton

Hola

Soy nuevo en el foro y en el arte de la programacion delphi, estoy haciendo un pequeno programita y quiero saber como puedo llamar una pantalla desde un boton desde la pantalla principal. Otro cosa si me pueden ayudar donde puede conseguir algunos manuales para principiente en programacion delphi, tengo la version 7.

Gracias
Responder Con Cita
  #2  
Antiguo 29-03-2009
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
Application.CreateForm(TfMiForm, fMiform);
fMiForm.ShowModal;

Se entiende que el formulario lo hemos pasado a la parte de no disponible, para que no consuma recursos mientras no se utilice.


Para los manuales puedes visitar el FTP del ClubDelphi.


Un Saludo.

Nota de Moderación:Solamente es conveniente realizar una pregunta por hilo abierto.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 29-03-2009
Cheerpipe Cheerpipe is offline
Miembro
 
Registrado: oct 2006
Posts: 46
Poder: 0
Cheerpipe Va por buen camino
Si es modal tambien puedes usar:

Código Delphi [-]
with TfMiForm.Create(Self) do
try
  Showmodal;
finally
  Free;
end;
Responder Con Cita
  #4  
Antiguo 30-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
También puedes utilizar, paar crear tu formulario.

Código Delphi [-]
 FMiForm := TFMiForm.Create(Self);
 Try
  FMiForm.ShowModal;
 Finally
  Free;
 end;
 
 //Si no es modal
 FMiForm.Show;
 
 //Y en el evento OnClose de tu formulario
 Action := caFree; //Para liberar

No te olvides quitar el formulario del AutoCreate.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 30-03-2009
Cheerpipe Cheerpipe is offline
Miembro
 
Registrado: oct 2006
Posts: 46
Poder: 0
Cheerpipe Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
También puedes utilizar, paar crear tu formulario.

Código Delphi [-] FMiForm := TFMiForm.Create(Self); Try FMiForm.ShowModal; Finally Free; end; //Si no es modal FMiForm.Show; //Y en el evento OnClose de tu formulario Action := caFree; //Para liberar


No te olvides quitar el formulario del AutoCreate.

Saluditos

Otro detalle, si no es modal, es mejor no usar un try finally, ya que el free contenido en el bloque finally serallamado inmediatamente luego de la ejecucion del form, destrullendolo al instante de ser creado.
Responder Con Cita
  #6  
Antiguo 30-03-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Cheerpipe Ver Mensaje
Otro detalle, si no es modal, es mejor no usar un try finally, ya que el free contenido en el bloque finally serallamado inmediatamente luego de la ejecucion del form, destrullendolo al instante de ser creado.
Estoy de acuerdo, por eso le puse el codigo sin el Try Finally ni el Free, la liberación estaría en el OnClose del formulario al cual se ha llamado con el Show.

Código Delphi [-]
//Si no es modal
 FMiForm.Show;
 
  //Y en el evento OnClose de tu formulario
 Action := caFree; //Para liberar

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #7  
Antiguo 01-04-2009
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Hola, he visto los comentarios y me surge una duda.

"Mi" filosofia en la programacion siempre ha sido que los forms se creen automaticamente y yo los llamo cada vez que haga falta.

Veo que dicen que es mejor crearlas y luego liberarlas, cuando usas muchas veces una forma, es ventajoso usar este metodo?

O es mejor SIEMPRE usar el metodo de create-free???
Cual es mejor y que ventajas tiene?

gracias.
Responder Con Cita
  #8  
Antiguo 01-04-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por paladincubano Ver Mensaje
"Mi" filosofia en la programacion siempre ha sido que los forms se creen automaticamente y yo los llamo cada vez que haga falta.

Veo que dicen que es mejor crearlas y luego liberarlas, cuando usas muchas veces una forma, es ventajoso usar este metodo?

O es mejor SIEMPRE usar el metodo de create-free???
Cual es mejor y que ventajas tiene?
Hola, si los tienes en el AutoCreate, te crea todos tus formularios al inico de tu aplicación, cuando son pocos casi no se siente, pero cuando la cosa aumenta se pone muy lento, si lo quitas del autoCreate, al iniciarse tu app es mas rapido ya que se crean solo los necesarios. El tener todos los formularios creados te consume recursos ademas que es lento al inico, por eso que mejor los crees y los liberes solo cuando los necesites, ahora si es un formulario que lo vas a usar muy seguido, entonces puedes dejarlo en el AutoCreate, un caso puede ser el DataModule, yo tengo en el autoCreaete 2 o 3 maximo. Porque liberar, si los creas tu podrías crear muchas instancias de ese mismo formulario, pero también podrías controlar que el formalario no este creado, para evitarnos eso, mejor creamos y liberamos al terminar de usarlo.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #9  
Antiguo 01-04-2009
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Bueno he quitado para probar unos de mis formas del autocreate.

Pero me da error.
Lo que hice fue en el evento del boton.

FRutas.Create(Self);
FRutas.ShowModal;

Y en el evento del close form de FRutas puse Action:=caFree;

Pero me da un error de "Access violation..."
En ese form tengo normalmente componentes de bases de datos (DBEdit y DBMemo) enlazados a un DataSource y estan activos en tiempo de diseño.

Cual es el problema?

Edito:
Parece mentira que no se crear componentes:
Debia crearlo
FRutas := TFRutas.Create(Self)

problema resuelto. gracias

Última edición por paladincubano fecha: 01-04-2009 a las 17:05:55.
Responder Con Cita
  #10  
Antiguo 01-04-2009
Cheerpipe Cheerpipe is offline
Miembro
 
Registrado: oct 2006
Posts: 46
Poder: 0
Cheerpipe Va por buen camino
Cita:
Empezado por paladincubano Ver Mensaje
Bueno he quitado para probar unos de mis formas del autocreate.

Pero me da error.
Lo que hice fue en el evento del boton.

FRutas.Create(Self);
FRutas.ShowModal;

Y en el evento del close form de FRutas puse Action:=caFree;

Pero me da un error de "Access violation..."
En ese form tengo normalmente componentes de bases de datos (DBEdit y DBMemo) enlazados a un DataSource y estan activos en tiempo de diseño.

Cual es el problema?

Edito:
Parece mentira que no se crear componentes:
Debia crearlo
FRutas := TFRutas.Create(Self)

problema resuelto. gracias
El codigo correcto es:

Código Delphi [-]
FRutas := TFRutas.Create(Self);
FRutas.ShowModal;
Responder Con Cita
  #11  
Antiguo 01-04-2009
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Si gracias ya me habia percatado y habia editado el mensaje.
Bien se ve que estoy desde las 8 aqui, ya necesito irme a casa a jugar un poco COD5

gracias por todo.
Responder Con Cita
  #12  
Antiguo 01-04-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por paladincubano Ver Mensaje
Bueno he quitado para probar unos de mis formas del autocreate.

Pero me da error.
Lo que hice fue en el evento del boton.

FRutas.Create(Self);
FRutas.ShowModal;

Y en el evento del close form de FRutas puse Action:=caFree;

Pero me da un error de "Access violation..."
En ese form tengo normalmente componentes de bases de datos (DBEdit y DBMemo) enlazados a un DataSource y estan activos en tiempo de diseño.

Cual es el problema?
Hola, lo estas abriendo de forma Modal, hazlo de esta forma:

Código Delphi [-]
FRutas := TFRutas.Create(Self);
Try
  FRutas.ShowModal;
Finally
  FRutas.Free;
End;

Y no utilices el evento OnClose de tu formulario (CaFree), si lo utilizas entonces no tendrías que hacer el Free despues del ShowModal, pero a veces necesitas recuperar algunos valores de tu formulario despues del ShowModal, entonces mejor que lo liberes una ves que termines de recuperar en el Finally.

Cuando no es Modal, osea la llamada es con el Show; necesitas el Cafree en el OnClose ya que si liberas despues del Show, veras que tu formulario se crea y liberar ese rato, osea ni lo veras.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #13  
Antiguo 01-04-2009
Avatar de paladincubano
paladincubano paladincubano is offline
Miembro
 
Registrado: jul 2007
Posts: 147
Poder: 17
paladincubano Va por buen camino
Gracias Caro te entiendo.
Muchas veces recupero informacion cuando cierro las formas.
Pero en este caso no he usado ninguna informacion.

Solo que la forma la cierro cuando oprimo un boton
Aceptar ----> ModalResult := mrOk;
o
Cancelar -----> ModalResult := mrCancel;

Porque yo la forma la mando a abrir asi:

if FRutas.ShowModal=mrOk then .... else ....

Supongo que con el Action=caFree me retorne el verdadero valor del ModalResult no???
Responder Con Cita
  #14  
Antiguo 01-04-2009
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por paladincubano Ver Mensaje
Solo que la forma la cierro cuando oprimo un boton
Aceptar ----> ModalResult := mrOk;
o
Cancelar -----> ModalResult := mrCancel;

Porque yo la forma la mando a abrir asi:

if FRutas.ShowModal=mrOk then .... else ....

Supongo que con el Action=caFree me retorne el verdadero valor del ModalResult no???
Claro, te va a retornar el verdadero valor del ModalResult, ya que primero se asigna el valor y despues recien realiza el CaFree.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
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
llamar al evento click de un boton q se encuentra en un form desde otro form TURBOIGOR OOP 6 02-12-2008 14:50:16
llamar ejecutable desde boton web JuanErasmo .NET 2 16-01-2008 17:58:45
llamar a una rutina hecha por mi desde un boton lola_lolita C++ Builder 2 26-11-2007 10:26:25
Llamar evento OnClick de un boton desde otro Form Peterman OOP 7 17-10-2006 18:12:31
¿Como puedo llamar un Procedure desde otra unit? athal Lazarus, FreePascal, Kylix, etc. 11 17-05-2004 01:05:20


La franja horaria es GMT +2. Ahora son las 10:27:21.


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