| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Lun 14 Abr, 2003 12:17 pm Asunto: Proyectos multiformulario |
|
|
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 |
|
 |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Lun 14 Abr, 2003 4:52 pm Asunto: Campos reseteados |
|
|
| 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 |
|
 |
amatilla Cdt


Registrado: 03 Abr 2003Mensajes: 15
|
Publicado: Mar 15 Abr, 2003 8:08 am Asunto: |
|
|
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 |
|
 |
gizmo Lt JG

Registrado: 07 Feb 2003Mensajes: 54
|
Publicado: Mar 15 Abr, 2003 4:27 pm Asunto: |
|
|
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... |
|
| Volver arriba |
|
 |
Gon Invitado
|
Publicado: Jue 17 Abr, 2003 3:22 pm Asunto: A mi me pasa algo parecido |
|
|
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 |
|
 |
Angel Master


Registrado: 15 Abr 2003Mensajes: 2311Ubicación: Toledo (España)
|
Publicado: Vie 18 Abr, 2003 8:40 am Asunto: |
|
|
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 |
|
 |
|