Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

En el evento OnClose de TMainForm, ponè lo siguiente:

Código Delphi [-]
begin
   Action:= caFree;
end;

Saludos.
Responder Con Cita
  #2  
Antiguo 09-09-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 25
Caro Va por buen camino
Hola ericgs, según tu ejemplo debes colocar el codigo que te indica ecfisa en el OnClose de tu formulario TfmSeleccionarDepartamento que debe ser tu MDIChild. En las aplicaciones MDI por defecto todas las ventanas hijas se minimizan al cerrarlas.

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
  #3  
Antiguo 09-09-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por ecfisa Ver Mensaje
Hola.
En el evento OnClose de TMainForm, ponè lo siguiente:
Saludos.
Tál como dice Caro, Action:= caFree, va en los MDIChilds.

Realmente equivoqué al escribir el nombre del Form, mis disculpas

Saludos.

Última edición por ecfisa fecha: 09-09-2010 a las 19:17:03.
Responder Con Cita
  #4  
Antiguo 10-09-2010
ericgs ericgs is offline
Miembro
 
Registrado: abr 2010
Posts: 11
Poder: 0
ericgs Va por buen camino
el problema va en que si pongo:

Código Delphi [-]
 vModDep := TfmModificarDepartamento.Create(Self);
  ShowWindow(vModDep.Handle, SW_SHOWNORMAL);
  var:=vModDep.loQueSeaQueQuieraSacar;

la 3º linea se ejecuta justo después del ShowWindow, antes de que pueda hacer algo, al diferencia del modal
Responder Con Cita
  #5  
Antiguo 10-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.445
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por ericgs Ver Mensaje
la 3º linea se ejecuta justo después del ShowWindow, antes de que pueda hacer algo, al diferencia del modal
No acabo de entender cual es el problema.
Quieres recuperar un valor justo después de cerrar el formulario.
Si lo muestras modal, tendrás que destruirlo después de obtener el valor, sino tendrás problemas.

Código Delphi [-]
  vModDep := TfmModificarDepartamento.Create(Self); 
  try
    vModDep.ShowModal;    //=> Utiliza Action := caHide para luego poder recuuperar el cvalor.
    var := vModDep.loQueSeaQueQuieraSacar;  //(1)
  finally
    vModDep.Free; // lo destruyes
  end;

En este caso no puedes usar el Action := caFree, porque puede ser que cuando llegues a la línea (1) es formulario ya esté destruído o destruyendose.

Si no lo muestras modal, debes utilizar otro sistema, ya que necesitas que la línea se ejecute al cerrar el form (me imagino). Utilizar algunos de los eventos de salida para devolver el valor.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 13-09-2010
ericgs ericgs is offline
Miembro
 
Registrado: abr 2010
Posts: 11
Poder: 0
ericgs Va por buen camino
perdón no me exprese bien, en el codigo anterior estoy creando una ventana mdi (child), por lo q no puede ser modal
Responder Con Cita
  #7  
Antiguo 13-09-2010
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 19.445
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
La otra opción, como ya te he dicho puede ser utilizando un evento. En mi caso más de una vez he utilizado algo similar a esto.

En el formulario MDI que vas a destruir defines un evento tal que así:

Código Delphi [-]
  published
    property MyOnClose:TNotifyEvent read FMyOnClose write FMyOnClose;

Cuando creas ese formulario "enganchas" el evento a un procedimiento tuyo para recibirlo:

Código Delphi [-]
  // creo el form
  Form2 := TForm2.Create(Application);
  // Redirijo el evento a un procedimiento mío
  Form2.MyOnClose := _CerrarForm;
  // Visualiza
  Form2.Show;

Al cerrar el form2 (el MDIChild) antes de destruirlo "aviso" utilizando el evento:

Código Delphi [-]
procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  // Antes de destruirlo levantamos el evento
  if Assigned(Self.FMyOnClose) then begin
    Self.MyOnClose(Self);
  end;
  // Mandamos que se libere
  Action := caFree;
end;

Y en el momento de destruir el Form2 (MDIChild) al leventar el evento, llegará el control a mi procedimiento:

Código Delphi [-]
procedure TForm1._CerrarForm(Sender: TObject);
begin
  MessageDlg('Se está cerrando el formulario: ' + TForm(Sender).Name, mtInformation, [mbOK], 0);
end;

Parece más complejo de lo que es, pero en realidad es bastante sencillo.
Te adjunto el código para que veas cómo funciona.
Archivos Adjuntos
Tipo de Archivo: zip CerrarMDI.ZIP (2,7 KB, 9 visitas)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Intraweb Retornar Pagina Anterior ggram2 Internet 0 24-03-2009 01:50:31
Cómo hacer para retornar valores de una Unit a otra karo Varios 6 14-03-2009 20:57:28
Retornar o no retornar desde un script principal dec PHP 6 24-03-2008 23:41:12
retornar un valor Proc.Almacenado cacu OOP 1 05-03-2008 22:39:16
Como retornar un valor en Delphi Stanley Varios 8 29-10-2007 04:04:03


La franja horaria es GMT +2. Ahora son las 15:13:35.


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
Copyright 1996-2007 Club Delphi