Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Paso de variable entre clases (wxWidgets)

Estas en el tema de Paso de variable entre clases (wxWidgets) en el foro de C/C++ en Foros del Web. Hola, estoy haciendo un programa en C++ con wxWidgets, hasta ahora va todo bien, pero en un momento abro la ventana VIngresar , clickeo el ...
  #1 (permalink)  
Antiguo 22/02/2011, 14:27
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Pregunta Paso de variable entre clases (wxWidgets)

Hola, estoy haciendo un programa en C++ con wxWidgets, hasta ahora va todo bien, pero en un momento abro la ventana VIngresar, clickeo el botón que me dirige a una nueva ventana (VJuzgados), en la ventana VJuzgados tengo una lista de elementos, tengo que seleccionar uno y cerrar la ventana VJuzgados y el elemento que elegí tiene que aparecer en un campo de la ventana VIngresar, pero acá aparece el error, porque cuando trato de usar esa variable me marca error y sale del programa, a continuación dejo las dos cabeceras de las clases y la función de la clase VIngresar donde trato de usar la variable.

Código C++:
Ver original
  1. class VIngresar : public VentanaExpediente {
  2.    
  3. private:
  4.     class VProcesos *proc;
  5.     class VJuzgados *juzg;
  6. protected:
  7.     void ClickProceso( wxCommandEvent& event ) ;
  8.     void ClickJuzgado( wxCommandEvent& event );
  9.     void ClickNominacion( wxCommandEvent& event );
  10.     void ClickAceptar( wxCommandEvent& event );
  11.     void ClickCancelar( wxCommandEvent& event );
  12.    
  13. public:
  14.     VIngresar(wxWindow *parent=NULL);
  15.     ~VIngresar();
  16. };

Código C++:
Ver original
  1. class VJuzgados : public VentanaLista {
  2.    
  3. private:
  4.     string seleccion;
  5.     friend class VIngresar;
  6. protected:
  7.     void ClickAgregar( wxCommandEvent& event ) ;
  8.     void ClickAceptar( wxCommandEvent& event) ;
  9.     void ClickEditar( wxCommandEvent& event ) ;
  10.     void ClickCancelar( wxCommandEvent& event ) ;
  11.     void DobleClickLista( wxGridEvent& event ) ;
  12.     void ClickLista( wxGridEvent& event ) ;
  13.    
  14. public:
  15.     VJuzgados(wxWindow *parent=NULL);
  16.     ~VJuzgados();
  17. };


Código C++:
Ver original
  1. void VIngresar::ClickJuzgado( wxCommandEvent& event ) {
  2.     VJuzgados *nueva_ventana = new VJuzgados(this);
  3.     if (nueva_ventana->ShowModal()==1) {
  4.     }
  5.     wxMessageBox(juzg->seleccion); //Verifico si se imprime, pero marca Error
  6.    
  7. }



Si alguien tiene alguna idea se lo agradezco.
Saludos
  #2 (permalink)  
Antiguo 23/02/2011, 09:53
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Paso de variable entre clases (wxWidgets)

Lo que probé de hacer es el string seleccion de la clase VJuzgado que está en private, lo puse público y entonces desde la clase amiga VIngresar llamo al string seleccion por medio del puntero juzg, pero cuando ejecuto el programa y pongo para imprimir el string seleccion me tira un error y se cierra.

Ni idea la verdad que puede ser

Saludos.
  #3 (permalink)  
Antiguo 23/02/2011, 13:33
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Paso de variable entre clases (wxWidgets)

Lo pongo mas fácil para ver si alguno me tira una idea.


Tengo la Clase1 con el atributo publico string Dato y el atributo privado friend class Clase2.
y en la Clase2 tengo un atributo privado class Clase1 *ptr.

Ahora, en la Clase1 el usuario selecciona un item y se guarda en Dato, luego en la Clase2 lo imprimo en pantalla ingresando con ptr->Dato...

Eso es todo, pero en vez de imprimir, da error y se cierra el programa.

Gracias.
  #4 (permalink)  
Antiguo 24/02/2011, 08:47
Avatar de Payaso73  
Fecha de Ingreso: abril-2009
Ubicación: Argentina
Mensajes: 309
Antigüedad: 15 años
Puntos: 20
Respuesta: Paso de variable entre clases (wxWidgets)

Bueno, lo solucioné de una manera bastante fea jaja

El dato lo guarde en el titulo de la ventana con SetLable(Dato) y en la otra ventana lo leí con nueva_ventana->GetLable();

Cuando encuentre algo mas elegante aviso. JA!

Saludos.

Etiquetas: clases, wxwidgets, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:44.