[C con Clase] [Bulk] sobre wxwidgets, wxtextctrl y manejo de datos numericos

david perez juanma zelion_cracking en yahoo.es
Mar Oct 2 19:47:17 CEST 2007


Hola Pedro.
Ten encuenta que WxWidgts es un wrapper, con lo que trabaja por encima de la api, esto quiere decir que a veces tendras que acceder a la api del SO para realizar algunas cosas delicadas, yo lo he tenido que hacer bastantes veces ya que los controles aunque muy completos, no tienen toda la funcionalidad de la api, es el problema de trabajar con librerias de mas alto nivel, muchas veces tendras que escribir tus propios controles que se adapten a tus necesidades.

ten encuenta que esta libreria es gratuita, y aunque cuenta con una comunidad muy grande que colabora con ella siempre tendra sus limitaciones, por ejemplo qt es mas completa pero tambien es de pago.

No obstante te puedo decir que yo personalmente he podido realizar todo lo que he querido, aunque haya tenido que recurrir a bajo nivel de programacion. Lo bueno que tiene el ser un wrapper es que siempre puedes mezclar codigo de la api de windows(en SO win32) e incluso vincularlo con codigo ensamblador. Asi que no te desesperes, que en estos casos es donde se aprende a programar y las posibilidades que te ofrecen ciertas herramientas.

Aqui te dejo un codigo que he encontrado por la wiki sobre el 

TransferToWindow, que seguro te dara alguna idea.


http://www.wxwindows.org/wiki/index.php/WxValidator

por lo que he podido ver, hay que trabajar con la variable m_validatorWindow.
De todas formas con el metodo cout dudo que puedas hacer algo ya que usa la salida standard de C++ y wxWidgets aunque esta escrito en C++ es un wrapper de la api del SO, y tienes que tener en cuenta que no es lo mismo realizar una aplicacion de consola que una de win32 (para windows)

si tienes alun problema con el codigo no dudes en preguntarlo.

Pedro Mateo <pedromateoa en gmail.com> escribió: jejejejeejje
gracias Zelion
tendre que ponerme en eso
no queria pero
que se le va a hacer

me pondre en en eso cuando termine de entender lo de los wxvalidator
y me gustaria hacerte unas preguntas

 si creas una clase que herede de  wxvalidator y le asignas dicha clase a un objeto de wxtextctrl
implementando todo los metodos como se muestra en esta definicion


class float_validatorC : public wxValidator

 {
     float* val;
 public:
     float_validatorC(float* val);
     wxObject* Clone() const;
     bool TransferFromWindow();
     bool TransferToWindow();
     bool Validate(wxWindow* parent);
  };
que el metodo TransferToWindow del validador debe ejecutarse cuando ejecuto
TransferDataToWindow de la ventana ? 

le pongo en el metodo TransferToWindow del validador esta linea cout<<"paso por aqui"<<endl;
y no pasa



 El día 2/10/07, ZeLion <Zelion_cracking en yahoo.es> escribió:                Hola Pedro.
   
  Una clase que realice lo que quieres expresamente, no hay, ya que no se puede seguir un Standard, asi que lo que tienes que hacer es como dices usar un validator para crearlo a tu gusto.
   
  ¿Mira haber si puedes hacer algo como esto?
   
   // crear un validador 
  wxTextValidator validador(wxFILTER_INCLUDE_CHAR_LIST); 
 
 
  wxArrayString mascara ("1234567890.");
  wxTextValidator validador (wxFILTER_INCLUDE_CHAR_LIST);
  validador.SetIncludes(mascara);
   
  con esto solo te deberia dejar insertar numeros y el punto.
   
  Y luego en el evento 'wxTextValidator::OnChar' detectar si el carácter introducido es '.' (punto) y este ya esta puesto, que no se inserte, ya que solo puede haber un punto.
   
  Ya me contaras.
    .: ZeLion :.
  
        
---------------------------------
  
  De: cconclase-bounces en listas.conclase.net [mailto:cconclase-bounces en listas.conclase.net] En nombre de  Pedro Mateo
 Enviado el: lunes, 01 de octubre de 2007 16:11
 Para: Lista de correo sobre C  y C++
 Asunto: [Bulk] [C con Clase] sobre wxwidgets,wxtextctrl y manejo de datos numericos
  
   
  hola a todos
 
 (atencion zelion, roberto garrido y cualquier otro que me pueda ayudar!)
 
 tengo entendido que hay miembros de la lista que manejan wxwidgets 
 tengo un problema y es que necesito que wxtextctrl me maneje datos numericos
 
 se como filtrar para que me tome numeros
 pero esto no significa que el objeto controle la entrada como una entrada de numeros 
 me explico
 
 cuando le asigno un wxTextValidator a wxTextCtrl especificandole que me tome 
 solo numeros, me permite entradas como esta
 000045e34.3e2.,654..,,.454
 
 y esto no es un numero 
 necesito poder controlar la entrada de datos  de manera que entren numeros reales
 asi como poder controlar la cantidad de decimales y digitos de la parte entera de los numeros
 para evitar overflow de tipos numericos 
 
 puedo ponerme a inventar una solucion pero me rehuso a creer que que wxwidgets no tiene
 una solucion para este tipo de problema
 
 
 
  

  
  
   
_______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
 http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net 
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
 

 _______________________________________________
Lista de correo Cconclase Cconclase en listas.conclase.net
http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ


..:ZeLion:.
       
---------------------------------

Sé un Mejor Amante del Cine
¿Quieres saber cómo? ¡Deja que otras personas te ayuden!.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20071002/25968957/attachment.html>


Más información sobre la lista de distribución Cconclase