Sábado 14 de Diciembre de 2024, 17:33
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
Pequeño Problema
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Pequeño Problema (Leído 2564 veces)
Devilcpc
Miembro activo
Mensajes: 90
Pequeño Problema
«
en:
Lunes 7 de Junio de 2004, 21:50 »
0
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 Form1
void __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 Form2
void __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
Tweet
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
lordford
Miembro activo
Mensajes: 53
Re: Pequeño Problema
«
Respuesta #1 en:
Martes 8 de Junio de 2004, 04:00 »
0
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,
LordFord
~ Si quieres que algo en la vida te salga bien]~
Amilius
Miembro HIPER activo
Mensajes: 665
Re: Pequeño Problema
«
Respuesta #2 en:
Martes 8 de Junio de 2004, 06:12 »
0
Cita de: "Devilcpc"
Buenas
Tengo un problema, tengo 2 formularios
Bla bla bla bla bal
bla bla
bla
¿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
Miembro activo
Mensajes: 30
Nacionalidad:
Facilitando el Trabajo con T.I.
Re: Pequeño Problema
«
Respuesta #3 en:
Martes 8 de Junio de 2004, 10:54 »
0
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!!!
Practicado y Leyendo Obtendras lo que Buscas
Devilcpc
Miembro activo
Mensajes: 90
Re: Pequeño Problema
«
Respuesta #4 en:
Miércoles 9 de Junio de 2004, 00:27 »
0
Lo hice tal cual como decis pero no funciona, el boton esta siempre permitido....
??
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
Devilcpc
Miembro activo
Mensajes: 90
Re: Pequeño Problema
«
Respuesta #5 en:
Miércoles 9 de Junio de 2004, 00:42 »
0
La forma que usa lordford si funciona, gracias...
aunq se complica mas ya q hay q hacer todo el codigo en un formulario..
saludos
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
AURED
Miembro activo
Mensajes: 60
Re: Pequeño Problema
«
Respuesta #6 en:
Jueves 10 de Junio de 2004, 01:30 »
0
Si quieres mantener tu forma original y no usa la de lordford prueba a sustituir el evento OnCreate del form2 por el evento OnShow y coloca alli el código que has escrito....funciona.
"Es mejor saber después de haber pensado y discutido que aceptar los saberes que nadie discute para no tener que pensar"
Devilcpc
Miembro activo
Mensajes: 90
Re: Pequeño Problema
«
Respuesta #7 en:
Viernes 11 de Junio de 2004, 01:10 »
0
tenes razon ahi me funcionio
Gracias AURED y a los otros tamb
-- Solo se q no se nada, pero aun supero a la generalidad de todos los hombres q no saben eso tampoco --
QliX=D!
Miembro MUY activo
Mensajes: 214
Re: Pequeño Problema
«
Respuesta #8 en:
Viernes 11 de Junio de 2004, 07:20 »
0
Es mas semasmasticamente correcto (o sea correcto para C++
) que sobrecarges el metodo Showmodal del form2, y le agreges el aprametro que corresponde a tu variable global "check", quedaria algo asi:
Código: Text
int __fastcall TForm2::ShowModal(bool check)
{
Boton1->Enabled = check; //si es true, si, si no, no.
}
//Y en el .h del TForm2 agregas:
class .....
{
public:
....
....
int __fastcall ShowModal (bool chcke);
...
...
}
//Entonces despues desde form1 podes usar:
if (Edit1->Text == "op")
Form2->ShowModal (true);
else
Form2->ShowModal (false);
Y listo, no es tan complejo, es ams claro, mas orientado a objetos, y menos riesgoso que tener una global.
Saludos.
QliX=D! - From the top of Tsunami
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
»
C++ Builder
(Moderador:
Eternal Idol
) »
Pequeño Problema