Programación General => C/C++ => C++ Builder => Mensaje iniciado por: betitono1 en Martes 28 de Septiembre de 2004, 22:37
Título: Variable Entre Formularios
Publicado por: betitono1 en Martes 28 de Septiembre de 2004, 22:37
Hola q tal alguien sabe como hacerle para declarar una variable en el formulario principal y q se pueda cambiar su valor en los demas formularios o en uno sólo, algo asi como q sea publica la variable, he probado varias declaraciones pero no me han resultado.
Saludos.
Título: Re: Variable Entre Formularios
Publicado por: lordford en Martes 28 de Septiembre de 2004, 23:45
Hola:
no deberias tener problemas con eso, intenta lo sqte:
Adiciona un atributo publico a tu clase Form1, digamos que es la principal, puede ser cualquier tipo de variable:
Código: Text
int number;
y luego crea un nuevo formulario, este se llamara por defecto Form2, y entre sus ficheros de cabecera, haz:
Código: Text
#include "Unit1.h" //Seria el nombre de la Unit principal
Imagina que tienes en el formulario 2 a estos componentes: una caja de texto con label[LabelEdit1] y un boton[Button1], entonces en el OnClick() del boton, puedes hacer esto:
Código: Text
//....
try
{
Form1->number = Edit1->Text.ToInt();
}
catch(...)
{
ShowMessage("Ingresa un entero valido")
Edit1->Clear();
Edit1->SetFocus();
}
Eso debe ser todo, al menos a mi no me da problemas, y aclaro qu uso C++ Builder 6 con Windows XP,
Espero que te sirva.
Salu2,
B) :lol: :hola: :smartass:
LordFord
Título: Re: Variable Entre Formularios
Publicado por: betitono1 en Miércoles 29 de Septiembre de 2004, 01:22
gracias por la respuesta pero lonecesito para Builder 5.0 ya probe el código y no me funciona, me dice q es una variable desconocida,
Saludos
Título: Re: Variable Entre Formularios
Publicado por: AURED en Viernes 1 de Octubre de 2004, 14:34
¿No funciona eso en el Builder 5? :o Para que te funcione debes declararla como miembro público de la clase Form1, o sea dentro de la declaración de la clase q hay en el Unit1.h, lo cual supongo que ya habrás hecho ¿no?
Prueba si no a declararla fuera de la clase como una variable global con la cláusula extern. :huh:
¿Tantas diferencias hay entre la versión 5 y la 6? yo solo he manejado esta última...
Título: Re: Variable Entre Formularios
Publicado por: Joss en Martes 26 de Octubre de 2004, 17:02
Lo que dice AURED funciona, en la 5.0 que es la que tengo. Sospecho que te has olvidado algo, como pueda ser el #include "unit1.h"... Saludos.
Título: Re: Variable Entre Formularios
Publicado por: NOVA_BUILDER en Miércoles 1 de Diciembre de 2004, 15:46
ESTOY DE ACUERDO,
MIRA REALIZA PASO A PASO LO SIG..
///FORM1
PUBLIC : INT variable_global;
////FORM2
//TAL VEZ AL PRESIONAR UN BOTON INCREMENTAS LA VARIABLE DE LA FORMA1 (variable_global
//ENTONCES....
FORM1->variable_globa+=1; //AQUI LA MODIFICAS COMO QUIERAS, PERO LA RESPUESTA ESTA EN ESTAS DOS PARTES.
////////////////////////
FORM->"variable_global" //ASI ACCESAS A LA VARIABLE DE LA FORMA, PERO TAMBIEN DEBES DECLARAR EN LA FORM2 EL FORM1
SUPONGAMOS QUE HAS GUARDADO EL FORM1 COMO INICIO Y EL FORM2 COMO SEGUNDA, ENTONCES DEBES HACER LO SIGUIENTE
EN EL CODIGO DEL FORM2 (SEGUNDA), EXISTE "SEGUNDA.H" DEBAJO DE ESTA DECLARA "INICIO.H" Y LISTO, NO ESTAS APLICANDO BIEN LO ANTERIOR, YA QUE ES LO MISMO PERO UN POCO MAS EXPLICADO...
BYE... <_< ///////////////////////
Título: Re: Variable Entre Formularios
Publicado por: Kabern en Miércoles 23 de Noviembre de 2005, 02:42
pones en el codigo del primer formulario:
extern int x;
pones en el codigo del segundo formulario:
extern int x;
y te va a conservar el valor entre las llamadas de los formularios, checa mas a fondo extern es un modificador de almacenamiento de clase