SoloCodigo

Programación General => C/C++ => Visual C++ => Mensaje iniciado por: avis_phoenix en Miércoles 8 de Junio de 2005, 20:09

Título: Comunicación Entre Ventanas
Publicado por: avis_phoenix en Miércoles 8 de Junio de 2005, 20:09
mi programa tiene como inicio una ventana con el menu de opciones, entonces presionas un boton y aparece ensi el programa ya configurado según las opciones que elegiste, o eso pretendo hacer.
Sucede que estoy ya en la parte donde verifico las opciones del nivel, pero no puedo ver desde la otra ventana que valor tienen los radio buttons, ni nada de la otra ventana, y desde la ventana principal ta mpoco puedo alterar cosas de la ventana secundaría (por qué??) y entonces hice una cabecera que definia variables globales, entonces ahi estabn unas variables que almacenan con 1 si elegio facil, con un 2 si elegio dificil, y con un 3 si eligio imposible, y en la otra ventana verifico estas variables para saber que opcion eligioeron, no me ice nada al compilar, pero al construir el linking me dice que no se puede usar esas variables por que ya fueron usadas en otros objetos, ahhh no sé que hacer, AYUDA!!!!!
Usó visual c++ con un proyecto CLR
Título: Re: Comunicación Entre Ventanas
Publicado por: JuanK en Domingo 12 de Junio de 2005, 06:28
Citar
otra ventana, y desde la ventana principal ta mpoco puedo alterar cosas de la ventana secundaría (por qué??)

Tienes que aprender mucho de POO.


Ahora para hacer eso que haes es necesario que cada una de las formas pertenezcan al mismo proyecto y en uno de los fuentes debes declarar esas variables globales como extern...
es decir en una de ellas la defines como:


public static int variable

y en la otra seria:

public static estern int variable;

Lo mas ercomendable para la comunicacion entre ellas seria por pasos de parametros en el constructor, es decir

Código: Text
  1.  
  2. ...
  3. ...
  4. public form forma1( ref string cadenacom)
  5. {
  6. }
  7. ...
  8. ...
  9.  
  10. public form forma2()
  11. {
  12.    String cadena1="blablabva";
  13.    forma1 f1 = new forma1(ref cadena1)
  14. }
  15.  
  16.  

Y aun mas recomendabe realizar la comunicacion haciendo uso de sockets, para lo cual las formas bien pueden ser de proyectos diferentes.
Título: Re: Comunicación Entre Ventanas
Publicado por: avis_phoenix en Domingo 12 de Junio de 2005, 18:05
Bueno, sé que no me resultaría los codigos de los constructores pues uso CLR (repito), y así no se crea un String ni un form.
de todos modos yo lo solucione simplemente poniendo variables globales en el codigo del .cpp y entonces las funciones que necesitaban comunicarse con la otra ventana lo que hice fue realizarlas en el .cpp de la otra ventana y usar las variables globales como comunicadores, y listo, así si me funciono, perdón por no poner la respuesta que encontre.
Si la pones en el .h sea como sea que la pongas no me deja usarlas en otras ventanas, si son globales en el .h no las puedo usar en ningún lado, si son públicas en la ventana (en la clase de la ventana) no me deja usarlas (no sé por que debería) en otras ventanas, sólo en la misma ventana, aunqeu sean públicas, esta medio raro este compilador (vengo de acostumbrar a usar builder y visual me salio  muy raro para mi), sabes por que no las deja usar si son públicas?
tienes que ser forzosamente extern para que pueda usarla desde afuera de la clase? (no me consta que sirva, puede ser que ni con extern sirva, deja veo)