Programación General > C++ Builder

 Pequeño Problema

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa