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 11-02-2006
Chompiras Chompiras is offline
Miembro
 
Registrado: ene 2006
Ubicación: La plata, Argentina
Posts: 37
Poder: 0
Chompiras Va por buen camino
Arrow Duda principiante con manejo de formularios

Yo tengo un formulario (llamemosló F1). Este tiene un menu, desde el cual se accede a otro formulario(llamemosló F2). El tema es que tengo varios combobox en F2, en los cuales si seleccionaba algun valor, y luego cerraba a F2, cuando lo volvia a abrir (desde F1) seguian estando, entonces mi pregunta es...¿Por que siguen estando almacenados los valores si yo lo cerre (o sea, no se tendrian que perder los valores seleccionados)?

Editado:
Otra cosa relacionada con formularios, cuando cierro F2, quiero capturar los valores de los combobox que tengo ahi y ponerlos en variables de F1 y no se bien como hacerlo, ya que no entiendo del todo que informacion se pueden intercambiar ambos formularios y como se hace esto. Yo tenia pensado hacer que en el evento close de F2 llame a un proceso almacenado en F1, el cual haria todo lo que acabo de decir en la segunda duda de este hilo...¿estaria bien hecho asi?
__________________
El sabio no dice todo lo que piensa, pero piensa todo lo que dice...

Última edición por Chompiras fecha: 11-02-2006 a las 01:28:24.
Responder Con Cita
  #2  
Antiguo 11-02-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos

El por que siguen los valores en los combobox puede ser porque en realidad el F2 no se destruye totalmente, sino que oculta. Para destruirlo por en su evetno Onclose==> Action:=caFree. Entonces para llamar a este formulario debes crearlo y mostrarlo
Código Delphi [-]
procedure noseque;
begin
  F2:=TF2.Create(Application);
  F2.Show;//o Showmodal
end;

Con respectoa pasar valores de F2 a F1, puedes usar variables globales o declarar propiedades para el intercambio de datos entre uno y otro; teniendo en cuenta que debes pasar los valores de F2 a F1 antes de cerrar o destruir F2.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #3  
Antiguo 11-02-2006
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
1. Cuando cierras el formulario, por defecto sólo se oculta y por ello al abrirlo de nuevo todo sigue igual. Puedes cambiar este comportamiento poniendo

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

en el evento OnClose del formulario F2. Nota no obstante que entonces deberás crearlo nuevamente cuando lo quieras mostrar.

2. Un formulario puede acceder a las componentes y propiedades públicas de cualquier otro formulario con tan sólo incluir su unidad en la cláusula uses. Sin embargo, tal como lo planteas es una mala práctica:

¿Qué hace F2?

Permite al usuario seleccionar ciertos valores. Tal y como, por ejemplo, un cuadro "Abrir archivo" le permite seleccionar un archivo. Dicho de otra manera, F2 es un formulario meramente auxiliar y no tiene porqué saber que pasa con esos valores.

A quien sí le importa es a F1, ya que es quien los requiere. Lo usual es que F1 use F2.ShowModal para mostrar al formulario auxiliar ya que de esta manera, tiene control de cuándo se cierra y puede así tomar sus valores:

Código:
F2.ShowModal;
Variables <-- F2.Valores
De hecho F1 puede acceder directamente a los combos de F2. Pero esto también es mala idea pues te limita a poder en un futuro cambiar la interfaz de F2. A fin de cuentas a F1 no le interesa cómo hace F2 para obtener sus valores, sólo requiere estos últimos. Es lo mismo que con el mencionado cuadro "Abrir archivo". Cuando lo usamos no sabemos con precisión que controles use internamente, sólo nos interesa su propiedad FileName.

Entonces, lo correcto es crear propiedades públicas, por ejemplo una por cada valor requerido. Cuando F2 se cierre, en su evento OnClose llena estas propiedades tomando los valores de sus combos. Así F1 sólo necesita acceder a esas propiedades públicas.

// Saludos
Responder Con Cita
  #4  
Antiguo 11-02-2006
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
¿Otra vez? Caramba, que se me adelanta Troi y además sin tanto rollo como yo Creo que mejor me voy a cenar

// Saludos
Responder Con Cita
  #5  
Antiguo 11-02-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Jeje

Que te aproveche la cena

Saludos
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #6  
Antiguo 11-02-2006
[FGarcia] FGarcia is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Cordoba, Veracruz, México
Posts: 1.123
Poder: 20
FGarcia Va por buen camino
El teclado mas rapido del Oeste

:d :d :d :d
Responder Con Cita
  #7  
Antiguo 11-02-2006
Chompiras Chompiras is offline
Miembro
 
Registrado: ene 2006
Ubicación: La plata, Argentina
Posts: 37
Poder: 0
Chompiras Va por buen camino
Arrow Gracias a todos!!

Genial, entendi perfectamente todo lo que me dijieron, gracias a todos!!!

Pd: Roman, por mas que se te hayan adelantado al responder, gracias igual, ya que tu respuesta me ayudo a terminar de entender algunos pequeños detalles que no habia entendido aun.
__________________
El sabio no dice todo lo que piensa, pero piensa todo lo que dice...
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
Problemas con el manejo de la RAM SoulSoldier C++ Builder 1 16-09-2005 00:56:00
Mostrar y cerrar correctamente los formularios serhasae Varios 3 25-06-2005 19:55:25
Duda de principiante (Help!!!!) taeyin Firebird e Interbase 2 04-06-2005 22:43:53
Duda con un TlistBox(eliminar un Item!! ) kye_z Varios 3 17-11-2004 15:39:59
CTRL-P en varios formularios magm2000 Varios 2 20-10-2004 09:38:09


La franja horaria es GMT +2. Ahora son las 14:49:25.


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