Programación General > C++ Builder
Pequeño Problema
Devilcpc:
Buenas
Tengo un problema, tengo 2 formularios (Form1 y Form2), el Form1 tiene un Edit (Edit1) y un Boton (Button1), el Form2 tiene un boton (Button2), basicamente lo q quiero hacer es q en el Form1 al tocar el boton se muestre el Form2 y si en el Edit escribí op, el boton del Form2 tiene q estar permitido, de lo contrario no...
yo lo hago con una variable global, pero no funciona:
--- Código: Text --- //Esto en el Form1void __fastcall TForm1::Button1Click(TObject *Sender){ if (Edit1->Text == "op") variable=1; //Variable declarada en el .h como publica else variable=0; Form2->ShowModal(); } //Esto en el Form2void __fastcall TForm2::FormCreate(TObject *Sender){ if (Form1->variable == 1) Button1->Enabled = true; else Button1->Enabled = false;}
aclaro que inclui los correspondientes Unit.cpp en cada formulario, no me da erros pero la variable es como si siempre tuviera el valor de 0.
Saludos
Adrian
lordford:
Hola:
intenta esto, la explicacion no la se, ya algun otro usuario la dara, la verdad es que no se por que no funciona, aqui te pongo un ejemplo, asi si lo hace.
--- Código: Text ---void __fastcall TForm1::Button1Click(TObject *Sender){ variable = 0; if (Edit1->Text == "op") { variable=1; Form2->Button1->Enabled = 1; } else { variable = 0; Form2->Button1->Enabled = 0; } Form2->ShowModal(); }
Salu2,
:smartass: :hola: B) :lol:
LordFord
Amilius:
--- Cita de: "Devilcpc" --- Buenas
Tengo un problema, tengo 2 formularios
Bla bla bla bla bal
bla bla
bla
--- Fin de la cita ---
:blink:
¿Por que lo pusiste en el Create?
void __fastcall TForm2::FormCreate(TObject *Sender)
Esa ventana no se creará cada vez que presiones el otro botón, por que sólo se "mostrará" (según tu código), pero ya estará creada al principio. Por eso cambiar al valor de tu variable no pasara NADA.
ChangSoft:
Ya que tengas tus dos ventanas o form hechos el Form1 con el edit y el buton (Edit1 y Button1) en el Form2 con el boton (Button1)
Ahora presiona Alt+F11 en uno de los forms (si es el form1 agrega el form2) y haces lo mismo con el otro form.
Hora en el archivo .h (Ctrl+F6) del form1 (o donde se encuentre tu Edit1) creo una variable de tipo "bool" donde en la parte de hasta abajo donde dice public...
Ejemplo:
.....Public:
bool check;
Ahora bien dale doble click al button1 de tu form1 y poner el codigo:
if(!StrComp(Edit1->Text.c_str(),"OP"))
{
check=1;
Form2->ShowModal();
}
Ahora bien en la forma2 en los Eventos, dale en FormActivate (doble click) te pondra algo entre llaves y pones:
if(Form1->Check)
Button1->Enabled=true;
espero te sirva ok!!!
Devilcpc:
Lo hice tal cual como decis pero no funciona, el boton esta siempre permitido....
??
Navegación
[#] Página Siguiente
Ir a la versión completa