• Sábado 14 de Diciembre de 2024, 17:34

Autor Tema:  Variable Entre Formularios  (Leído 2750 veces)

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Variable Entre Formularios
« en: Martes 28 de Septiembre de 2004, 22:37 »
0
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.

lordford

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: Variable Entre Formularios
« Respuesta #1 en: Martes 28 de Septiembre de 2004, 23:45 »
0
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
  1. int number;
  2.  
y luego crea un nuevo formulario, este se llamara por defecto Form2, y entre sus ficheros de cabecera, haz:
Código: Text
  1. #include "Unit1.h" //Seria el nombre de la Unit principal
  2.  
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
  1. //....
  2. try
  3. {
  4.  Form1->number = Edit1->Text.ToInt();
  5. }
  6. catch(...)
  7. {
  8.  ShowMessage("Ingresa un entero valido")
  9.  Edit1->Clear();
  10.  Edit1->SetFocus();
  11. }
  12.  

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
~ Si quieres que algo en la vida te salga bien]~

betitono1

  • Miembro MUY activo
  • ***
  • Mensajes: 235
    • Ver Perfil
Re: Variable Entre Formularios
« Respuesta #2 en: Miércoles 29 de Septiembre de 2004, 01:22 »
0
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

AURED

  • Miembro activo
  • **
  • Mensajes: 60
    • Ver Perfil
Re: Variable Entre Formularios
« Respuesta #3 en: Viernes 1 de Octubre de 2004, 14:34 »
0
¿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...
"Es mejor saber después de haber pensado y discutido que aceptar los saberes que nadie discute para no tener que pensar"

Joss

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Re: Variable Entre Formularios
« Respuesta #4 en: Martes 26 de Octubre de 2004, 17:02 »
0
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.

NOVA_BUILDER

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Variable Entre Formularios
« Respuesta #5 en: Miércoles 1 de Diciembre de 2004, 15:46 »
0
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... <_<
///////////////////////
EL QUE LEE SOBRE VB...ES PORQUE ESTA APRENDIENDO A LEER.

Kabern

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Variable Entre Formularios
« Respuesta #6 en: Miércoles 23 de Noviembre de 2005, 02:42 »
0
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