Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-11-2005
clanmilano clanmilano is offline
Miembro
 
Registrado: ene 2005
Ubicación: Parana - Entre Rios - Argentina
Posts: 58
Poder: 20
clanmilano Va por buen camino
Question que evento se produce...?

Quisiera hacer lo siguiente:
estando en una ventana de ABM de ventas, cuando el usuario busca un determinado cliente en un dblookup y no lo encuentra, pueda apretar un botón en ese mismo form y llame al ABM de clientes y luego de darlo de alta regrese al ABM de ventas pudiendo elejirlo de ese dblookup.

No se que evento se ejecuta al cerrar la ventana de clientes y volver nuevamente a la de ventas. Probe con varios eventos y ninguno se producia: ni onshow, onactivate, ...
¿Se ejecuta algun evento sobre mi form de ventas en ese momento, es decir, al cerrar un form y quedar activo el de atras?

Espero su ayuda.
Muchas Gracias.
Responder Con Cita
  #2  
Antiguo 10-11-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Creo que lo correcto sería que mostraras el segundo formulario "modalmente", es decir, mediante su método "ShowModal". De ese modo, el primer formulario quedaría pendiente de su "resultado", el cual obtendrías en la variable "ModalResult" del segundo formulario: además podrías utilizar este, puesto que estos resulados son "mrOk", "mrCancel", etc. Por supuesto, el segundo formulario cuenta con el correspondiente evento "OnClose", pero, para mí tengo que mostrar el formulario "modalmente" sería lo suyo. Ya dirás algo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 10-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si no quieres trabajar con ShowModal por alguna razón extraña, siempre puedes crearte tus propios eventos:

Código Delphi [-]
TElegido = procedure (Cliente:String; Codigo:Integer) of object;

Tform1 = ....
public
   Elegido :TElegido
end;

procedure TForm1.boton1Click;
begin
  if assigned(elegido) then // cuando se pulse el boton lanzamos el evento
    Elegido (edit1.text, spinEdit1.AsInteger);
end;


ahora en Tform2 (el que llamará a Form1)

Tform2 = ...

   private
     procedure ElElegido(Cliente:String; Codigo:Integer);
           // declaramos el procedimiento que recoge el evento de Form1
           // por supuesto tiene que llevar los mismos parámetros; 
           // el nombre le ponemos el que más corage nos dé.

procedure form2Create(..)
begin
  form2 := Tform2.Create(application);
  form2.Elegido := ElElegido // asignamos el evento de Form2 con la rutina 
//                   ElElegido, para que nos llegue a esta última la información
end;

procedure Tform2.ElElegido(Cliente:String; Codigo:Integer);
begin
//  En form2 se pulsó el boton1, y ejecutamos lo que queramos.
  ShowMessage(cliente);
end;

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 10-11-2005
clanmilano clanmilano is offline
Miembro
 
Registrado: ene 2005
Ubicación: Parana - Entre Rios - Argentina
Posts: 58
Poder: 20
clanmilano Va por buen camino
Question

Me parece que no comprendieron cual era mi duda realmente, tal vez yo no me explique bien.

Lo que yo hago es teniendo el 1er form abierto, abro otro (2do form) con "showmodal". Quiero saber que evento se produce sobre el 1er form (que por supuesto queda detras sin poder accederse hasta que no se cierra el 2do.) cuando se cierra el 2do. Ya que quisiera poder realizar cierta accion de refrezcado sobre la tabla de clientes, para poder ver en un lookup del 1er form el nuevo cliente dado de alta en el 2do form.

Gracias...
Responder Con Cita
  #5  
Antiguo 10-11-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Si lo haces con ShowModal, no necesitas ningún evento, y es lo que estaba explicando dec.

Código Delphi [-]
procedure TForm1.Button1Click();
begin

Form2 := Tform2.Create(nil);
try 
  if Form2.ShowModal = mrOK then
    showmessage(' es ok')
  else
    Showmessage(' se ha cancelado');
finally 
  Form2.Free;
end;
end;
Cuando llegue al Form2.ShowModal, el código de Form1 se quedará congelado, y hasta que no se asigne la propiedad Form2.ModalResult, no se volverá al código de Form1. En este caso, no necesitas ningún evento.

Form2.ModalResult se asigna cuando:
- Tienes un BitBtn en Form2. La propiedad Kind del BitBtn indica el modalResult que se devolverá al hacer clic sobre este botón.
- Cierras el form2 (creo que se devuelve mrCancel).


saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 10-11-2005
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por clanmilano
Lo que yo hago es teniendo el 1er form abierto, abro otro (2do form) con "showmodal". Quiero saber que evento se produce sobre el 1er form
Ninguno, el mensaje se le está enviando al otro objeto, es decir el Form2

Hasta Luego -
__________________
No todo es como parece ser...
Responder Con Cita
  #7  
Antiguo 10-11-2005
andres1569 andres1569 is offline
Miembro
 
Registrado: may 2003
Posts: 908
Poder: 21
andres1569 Va por buen camino
Hola.

Como ya te han comentado, si lanzas de forma modal dicho Form2, no necesitas eventos para saber cuándo se cierra, lo controlas desde el mismo código que lo lanza. Pero quizás también podrías implementar esto a nivel de Datasets, en la tabla de Clientes, en los eventos AfterPost y AfterDelete refrescas la tabla o el campo que sirve de LookUp (supongo que estás utilizando dos componentes TTable ligados a Clientes, uno para las ABM y otro para el Lookup), así te sirve para más formularios donde se requiera un comportamiento similar.
__________________
Guía de Estilo
Responder Con Cita
  #8  
Antiguo 10-11-2005
clanmilano clanmilano is offline
Miembro
 
Registrado: ene 2005
Ubicación: Parana - Entre Rios - Argentina
Posts: 58
Poder: 20
clanmilano Va por buen camino
Muchas gracias..tratare de implementarlo, creo que ahora si me sacaron esa duda...MUCHAS GRACIAS...no dejo de pensarlo..que buen foro che!!...saludos!!
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


La franja horaria es GMT +2. Ahora son las 07:44:40.


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