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 12-04-2011
pau_elx pau_elx is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 21
Poder: 0
pau_elx Va por buen camino
Saber que formulario invoca a otro

Hola buenas tardes, queria ver si alguien puede ayudarme con éste problema, estoy haciendo una aplicación en Delphi 7 y tengo 2 formularios que llaman a un tercero, pero dependiendo quien llama a éste tercero le pasarán diferentes valores, se que se tiene que hacer con Sender pero no me funciona, yo lo hacia con if sender=Form1. Gracias de antemano.
Responder Con Cita
  #2  
Antiguo 12-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si los formularios que llaman al otro son los que le pasan valores, ¿para qué necesitas distinguir quién lo llama? Que cada uno le pase los valores que requiera.

// Saludos
Responder Con Cita
  #3  
Antiguo 12-04-2011
pau_elx pau_elx is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 21
Poder: 0
pau_elx Va por buen camino
Hola, yo lo que tenia puesto es que tanto Form1 como Form2 llaman por ejemplo a un Form3, y en esté Form3 al activarlo queria poner que si quien le llama es Form1 tome un valor y si es Form2 el valor que toma Form3 es otro diferente ¿como puedo decirle desde Form1 el valor que le paso ántes de mostrarlo?
Responder Con Cita
  #4  
Antiguo 12-04-2011
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Si Form3 lo creas al momento de llamarlo, una opción sería crearlo así:

Código Delphi [-]
Form3 := TForm3.Create(Self);

Esto hará que el Owner del formulario sea el que lo creó y, por tanto, puedes examinar la propiedad Owner para saber si es Form1 o Form2.

Sin embargo, ésta no es la técnica ideal. El formulario llamado (Form3) no debería depender de quién lo llama sino, en todo caso, de los valores iniciales que tenga.

Lo que quiero decir, es que puedes poner alguna propiedad en Form3 que sirva para determinar qué hacer. Entonces, cada uno de los formularios que lo llaman (Form1, Form2 o cualquier otro) pondrá el valor adecuado en dicha propiedad y Form3 examinará tal valor al momento de mostrarse.

// Saludos
Responder Con Cita
  #5  
Antiguo 12-04-2011
pau_elx pau_elx is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 21
Poder: 0
pau_elx Va por buen camino
perdona pero no te he entendido muy bien, la verdad es que no llevo mucho con Delphi, yo desde form1 por ejemplo primero creo Form3 con create(self) y luego lo visualizo con ShowModal, entonces en Form3 tengo un edit que tiene que tomar el valor x si se lo pasa el Form1 y por ejemplo y si se lo pasa el form2 el valor y, entonces esta comparación la hago en el procedimiento on activate del Form3 y de esta forma el edit dependiendo de que formulario sea quien lo ha llamdo visualizará el valor x o y, de que otra forma puedo hacer esto, no he entendido muy buen lo de la propiedad que me comentas, ¿como pueden form1 y form2 poner el valor a esta propiedad?
Responder Con Cita
  #6  
Antiguo 12-04-2011
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por roman Ver Mensaje
...
Lo que quiero decir, es que puedes poner alguna propiedad en Form3 que sirva para determinar qué hacer. Entonces, cada uno de los formularios que lo llaman (Form1, Form2 o cualquier otro) pondrá el valor adecuado en dicha propiedad y Form3 examinará tal valor al momento de mostrarse.
...
Estoy de acuerdo con roman, se podría por ejemplo utilizar la propiedad "Tag" del formulario Form3 algo asi:
Código Delphi [-]
// llamada del formulario 1 (Form1)
Form3 := TForm3.Create(Application);
Form3.Tag:=1;//pongo como etiqueta 1 para decir que se llama del Form1
Form3.Show;
...
Ahora la llamado del Form2
Código Delphi [-]
// llamada del formulario 2 (Form2)
Form3 := TForm3.Create(Application);
Form3.Tag:=2;//pongo como etiqueta 2 para decir que se llama del Form2
Form3.Show;
...
Ahora para saber qué formulario lo invocó, sencillamente verificamos la propiedad "Tag" donde lo necesitemos, algo así:
Código Delphi [-]
if Form3.Tag=1 then
Showmessage('El formulario fué invocado por el Form1')
else if Form3.Tag=2 then
       Showmessage('El formulario fué invocado por el Form2');
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 12-04-2011
pau_elx pau_elx is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 21
Poder: 0
pau_elx Va por buen camino
Ahora os he entendido, muchas gracias voy a probarlo.
Responder Con Cita
  #8  
Antiguo 12-04-2011
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 pau_elx Ver Mensaje
perdona pero no te he entendido muy bien, la verdad es que no llevo mucho con Delphi, yo desde form1 por ejemplo primero creo Form3 con create(self) y luego lo visualizo con ShowModal
Hola pau_elx, si lo creas con Self ya le estas indicando que el propietario (owner) es el form actual, entonces al hacer esto en el OnActivate de tu form3, tendrías el nombre del form que lo ha llamado.

Código Delphi [-]
showmessage(TForm(Self.Owner).Name);

Pero también puedes hacerlo de la otra forma que te ha indicado Roman.

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
Graficar vectores de otro formulario GEFERdMAUSER Gráficos 1 21-06-2010 15:31:42
Cargar una escena en otro formulario Isuri Varios 1 17-04-2009 11:39:33
Utilizar en un QR componentes de otro formulario lbidi Impresión 5 09-07-2008 14:21:57
Formulario hijo dentro de otro Patricio Varios 1 14-02-2005 15:49:43
Drag & Drop de un formulario a otro... SGOFx Varios 0 06-02-2005 07:33:29


La franja horaria es GMT +2. Ahora son las 14:31:22.


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