Shordi   26-06-2024, 20:00
#1
El control no es nuevo, lo hice hace el suficiente tiempo como para haber olvidado por completo cómo funcionaba. Menos mal que aunque he perdido la memoria aún se leer el código y ponerme al día fácilmente. A petición, le he añadido un comportamiento nuevo. Antes sólo buscaba y ahora filtra.
Una imagen vale más que mil palabras para el caso y un vídeo ni te cuento, aquí tenéis la demo:



Los enlaces de descarga del código fuente del vídeo:

https://drive.google.com/file/d/1_qWJ9Cm...sp=sharing

y, naturalmente, lo podéis bajar siempre en la última versión aquí:

https://gitlab.com/shordi/ComboSeek

Saludos

No podemos regresar
tincho   28-06-2024, 10:29
#2
Hola Shordi, antes de nada gracias por el interés en el asunto.
He intentado hacer un control que haga lo que explicaba antes pero no lo he conseguido (como control) pero si logre hacerlo con un formulario secundario.
Uno de los problemas es que el formulario secundario no se coloca en el sitio adecuado pues siempre aparece en el centro de la ventana y no en el sitio donde esta el TextBox que recibirá el texto elegido y origino el evento MouseDown().
Dejo aquí un video del comportamiento que debe tener el control y también se ve el comportamiento que tiene un ComBobox normal y ComboSeek (.mode=Filter)
A mi me interesa el comportamiento del tercero pero en un control.
[Imagen: UItT2Dr.gif]
Y el código fuente del ejemplo por si sirve de algo.
Archivos adjuntos
.gz
sample-search-foreign-0.0.1.tar.gz (Tamaño: 30.92 KB Descargas: 1)
Última modificación: 28-06-2024, 10:42 por tincho.

1 Saludo.
tincho   28-06-2024, 11:30
#3
ok, logre que se posicione en las coordenadas adecuadas (.ShowPopup) pero ahora no se activa el control textbox que uso para escribir los filtros, así que...
¿Como puedo forzar que el cursor se active en el textbox?
intente lanzar un evento pero no lo conseguí.

1 Saludo.
Shordi   28-06-2024, 11:38
#4
Lo miro, pero echa un ojo a la última versión del comboseek, que ahora filtra también.
Ya te cuento.

Le he echado un ojo y lo he empezado a modificar... hasta que me dado cuenta que estaba reescribiendo el ComboSeek. Big Grin Big Grin
Usa ComboSeek, se comporta como pediste.

Saludos.

Ahora se filtran los Items de la Lista que empiezan por la cadena tecleada, si lo que quieres, como en el ejemplo que has puesto, que se filtren los items que tengan cualquier coincidencia (adr para Madrid, por ejemplo), puedes modificar las líneas 254 de Comboseek.class y las líneas 96 y 115 del fComboseek.class.

Mejor aún, le voy a incluir una propiedad que permita los dos tipos de búsqueda.

Saludos.

Hecho. Ahora dispones dos propiedades sobre la lista: Mode (Seek o Filter), que establece si se filtra o si se busca y Type (Begins o Contains), que determina el tipo de búsqueda sobre la lista.
Se me ha ocurrido ampliar el tipo a Begins, Contains, Ends y Exact... pero me ha parecido que esas serían propiedades que nunca se usarían ¿No crees?

En gitlab lo tienes

Saludos
Última modificación: 28-06-2024, 12:25 por Shordi.

No podemos regresar
Shordi   28-06-2024, 12:44
#5
...y ya puestos he añadido una propiedad nueva: AutoSelect, de tipo boolean y que sólo tiene efecto en el modo de Filtro. Si se establece a True, siempre aparece pre seleccionado el primer elemento de la lista filtrada. Si está a False, habrá que hacer click o seleccionar vía teclado el item elegido.

Saludos

He hecho alguna actualización al ComboSeek. Lo tenéis en

https://gitlab.com/shordi/ComboSeek

Y aquí mi gato y yo os contamos las novedades... y alguna cosita más.

https://youtu.be/60S398rmxFo

Saludos
Última modificación: 28-06-2024, 13:19 por Shordi.

No podemos regresar
tincho   28-06-2024, 14:48
#6
(28-06-2024, 11:38)Shordi escribió: pero me ha parecido que esas serían propiedades que nunca se usarían ¿No crees?

Si, estoy de acuerdo, no se usarían, porque, en definitiva, se trata de "convertir" lo que un usuario escribe en un "registro existente" de la base de datos.
El ejemplo del/los "usuario/os" manotas que grababa/n la misma ciudad llamada de diferentes maneras es una clara muestra de lo que sucede en la realidad.
Por este motivo es necesario que el filtro muestre todas las coincidencias que contengan el contenido del textbox de búsqueda en cualquier parte de la cadena.
Pruebo control y te cuento.

(28-06-2024, 12:44)Shordi escribió: Y aquí mi gato y yo os contamos las novedades... y alguna cosita más.

Comprendo perfectamente, en una empresa la dicotomía Linux + Gambas (que en adelante llamare LG  Big Grin )
El parámetro fundamental para lograr usar LG es la determinación de la empresa, seguidamente la aceptación de los usuarios y en tercer lugar la matriz de compatibilidad, es decir si una empresa usa AutoCAD 2024 o algún otro programa que maneja formatos de archivo cerrados la cosa puede tornarse técnicamente imposible.
Última modificación: 28-06-2024, 21:08 por tincho.

1 Saludo.
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.