Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Extendiendo Una Clase
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Extendiendo Una Clase 
 
Ya sabéis que yo con eso de la POO soy bastante torpe. En los últimos tiempos he mejorado mucho, no creáis     , me creo mis clases tan bonitas ellas con sus propiedaditas y sus metoditos todo monos y tal.

Sin embargo me he encontrado una cosita que me ha dejado un poco despistado: con gb.qt4 la clase ListBox tiene la propiedad mode, que permite selecciones múltiples, pero no veo por ningún lado la propiedad "Selection", que tienen otros controles como un array de los elementos seleccionados en modo múltiple.

"No pasa nada", me digo, me creo una clase que herede de listbox, le aplico una Property Read Selection as string[] y cuando haga click que se rellene el string[].

Y ahí viene mi problema, ¿cómo intercepto el evento click de la clase original para que haga lo que arriba describo y, por supuesto, lo que ahora mismo hace? Quede claro que no me refiero al evento click que colocas y manejas en el Form, sino dentro del propio ListBox (es decir el procedimiento que pone en resaltado el elemento al seleccionarlo y rellena la propiedad current, etc.)

No sé si me explico.

Ya sé que puedo usar un gridview o similar, pero lo que quiero es tan simple (no entiendo por qué le han quitado esa propiedad al ListBox, ni por qué mantiene el multiple si luego no puedes acceder a los elementos seleccionados), que no me vale la pena.

Saludos.
 



 
última edición por shordi el Lunes, 16 Diciembre 2013, 11:16; editado 3 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extendiendo Una Clase 
 
A bote pronto, se me ocurre que pongas un observador en tu nueva clase.

Y asi puedes ver que evento se produce en ella, y programar tu respuesta.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extendiendo Una Clase 
 
creo que este hilo respondera tu pregunta


http://foro.gambas-es.org/viewtopic...ghlight=textbox
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extendiendo Una Clase 
 
Los tiros van por lo que apuntaba Julio, poner un observer. De todas formas, creo que para lo que yo quiero, crear una clase es excesivo. Resulta que en gbqt4, Listbox contiene un gridview. Gridview contiene un clase Rows que tiene la propiedad selection, que es lo que quiero.

Es decir, lo que yo quería -a saber: Una lista de los elementos seleccionados en el Listbox cuando está activado el modo múltiple de selección- lo tengo en

Lisbox1.children[0].rows.selection

La única diferencia es que es un integer[], que contiene el número de línea seleccionado. Un pequeño bucle y ya tengo la lista de cadenas seleccionadas.

He hecho un pequeño ejemplo en el que lo hago en forma de control. Lo he llamado xListBox (x por extendido), pero creo que es excesivo hacerlo así (aunque puede resultar cómodo, eso sí), con consultar el rows.selected del gridview que hay en children[0] del listbox original, vale.

XListBox.zip
Descripción:  
Descargar
Nombre del archivo: XListBox.zip
Tamaño: 7.57 KB
Descargado: 28 veces
XListBox.zip
Descripción:  
Descargar
Nombre del archivo: XListBox.zip
Tamaño: 7.57 KB
Descargado: 28 veces
XListBox.zip
Descripción:  
Descargar
Nombre del archivo: XListBox.zip
Tamaño: 7.57 KB
Descargado: 28 veces

 



 
última edición por shordi el Lunes, 16 Diciembre 2013, 11:16; editado 2 veces 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extendiendo Una Clase 
 
no entendi nada  
pero lo intresante esta en los mensajes 9 y 10
y solo lo he usado para mejorar los texbox y los combobox
es util cuando vaz a repetir   el control varias veces lo que ahorra mucho codigo
 



 
codificador - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extendiendo Una Clase 
 
Shordi:

Citar:
con consultar el rows.selected del gridview que hay en children[0] del listbox original

Es interesante eso, lo de children[] nunca entendí muy bien a lo que se referia... entonces se refiere a los controles que estan incluidos dentro del "contenedor", en este caso dentro del listbox.

Saludos
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Extendiendo Una Clase 
 
Exacto. Yo lo uso contínuamente. Lo único que ocurre, y no sé si es un bug o un límite del explorador de propiedades del ide, es que a cierto nivel de referencia, no reconoce la naturaleza de la instancia children.
Me explico:
Tienes un ListBox. El Children[0] del listbox es un Gridview, con su colección Rows y su propiedad Selection, que es es array de los numéros de filas seleccionadas.
Bien, para averiguar el número de la primera fila seleccionada la referencia debiera ser:
dim nseleccionado as integer
miListBox.Children[0].Rrows.Selection[0]
 

Pero esto genera un error de "Propiedad Rows inexistente en la clase container".

Sin embargo si haces

dim nseleccionado as integer
dim gr as gridview

gr=miListBox.Children[0]
nseleccionado=gr.rows.Selection[0]


Funciona perfectamente.

Espero que la información sea útil.
Saludos.
 



 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron