Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Proyectos multiformulario

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Proyectos multiformulario Responder citando

Hola!!
Quiero preguntar acerca de un problema que se me ha presentado. Resulta que tengo 2 forms creados a partir de 2 proyectos diferentes. La cuestión es que al dar a un botón del primer form tiene que ir al segundo.Hasta ahí bien: He hecho add to project-Include Unit Hdr y void
Código:
__fastcall TForm2::BitBtn8Click(TObject *Sender)
{
  Form1->ShowModal();
}

La cuestión es que en un proyecto tengo definidas unas variables pertenecientes a unas clases definidas en el proyecto1. Resulta que quiero que el proyecto2 (Form2) tenga acceso a dichas variables para almacenar más datos etc. Qué tengo que hacer?
¿Hay alguna forma de que desaparezca el form1 (con Include Unit Hdr tengo los dos abiertos) y que sea posible volver a é por medio de un botón de Atrás?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Campos reseteados Responder citando

A propósito, he incluido el .cpp y las clases del proyecto1(Form1) pueden ser utilizadas en el 2 pero aparecen todos sus campos inicializados a 0. Alguien sabe por qué?
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Yo uso con frecuencia esa estructura. Prueba esto:

1º. Declara las variables que te interese usar en los dos formularios en la sección public del Form1.h
Código:
[...]
public:      // User declarations
     __fastcall TForm1(TComponent* Owner);

     AnsiString cCadena

2º. Pon el correspondiente include en el Form2.
3º. Yo lo que hago es ocultar el Form1 al lanzar el Form2:
Código:

     Form1->Hide();
     Application->CreateForm(__classid(TForm2), &Form2);
     Form2->ShowModal();
     delete Form2;
     Form1->Show();

Las variables deficinidas en Form1.h las puedes usar en Form2 simplemente con Form1->cCadena, por ejemplo. Ahora bien, si queires que pasen con un valor de un formulario al otro, en la declaración tendrás que incluir su definición.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Hola!!
Gracias por la contestación!Efectivamente tendría que PASAR AL FORM2 CON EL VALOR ALMACENADO DEL FORM1.¿Qué debería de hacer?No me queda del todo claro...Sad
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: A mi me pasa algo parecido Responder citando

Quiero pasar un Objeto que he construido en un formulario, a otro formulario que se abré para pedir datos que modifiquen a el objeto en el estado que haya quedado en el anterior formulario.
Muchas gracias
Volver arriba
Mensaje    Asunto: Responder citando

Si en el primer formulario la variable es por ejemplo:
Código:
cCadena = "Mi nombre";

Cuando vayas al segundo formulario, conserva el valor y sólo que tendrás que poner, por ejemplo:
Código:
if (Form1->cCadena == "Mi nombre")
{
     <El código que sea>
}

Ten en cuenta que lo que definas de un formulario, salvo que limpies la memoria sigue ahí. Lo mismo si es al revés: puedes dar un valor a cCadena en Form2 y usarlo en Form1.
Código:
if (Form1->cCadena == "Mi nombre")
{
     <El código que sea>
     cCadena = "Tu nombre";
     Form2->Close();
}

Al volver a Form1, cCadena traerá el valor "Tu nombre"
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.