(01-12-2022, 18:27)ferchobahia escribió: ... soy Fernando ... a mis 50 años fue empezar ... mudar todo lo que uso a Linux...Bien, me hago una idea de por donde vas ya que que posteaste primero sobre gb.report2 y ahora estas con los campos de claves foráneas.
Cita:Así que (creo) la solución, para lograr que al escribir en un TextBox se muestre una lista dinámica, pasa por usar una ventana o formulario flotante que se muestre al momento de hacer click en el control.Si le echas un vistazo al código de ComboSeek, que es el mismo que combobox con las variaciones que yo añadí, verás que eso es exactamente lo que hace el control y lo que hace combobox, a saber: abre el formulario FComboSeekPopup donde se muestra la lista.
Cita:yo también intente primero usar un combobox y finalmente lo descarte porque no logre hacer funcionar bien el filtro de la lista mientras escribís, shordi con comboseek es el que mejor logro este efecto, pero si usas GTK no termina de funcionar bien.Efectivamente GTK es un problema... que no hay por qué usar. Cierto que nuestro sistema puede utilizar un entorno de escritorio basado en GTK, pero nuestros programas no tienen por qué hacerlo también si son compilados para QT o utilizamos en la versión QT del IDE... a no ser que las librerías de QT no existan en el sistema, cosa que hasta ahora nunca he visto.
(01-12-2022, 20:06)Shordi escribió: Bienvenido a la comunidad y es un placer ver que la familia crece... aunque sea de a poquito
A lo mejor te interesa lo que se habló en este hilo:
https://gambas-es.org/showthread.php?tid=922
Es un control heredado de combobox que hice hace unos meses y que busca en la lista de una manera más "racional" que la que ahora lleva (a mi pobre entender, que como soy el autor qué te voy a contar ) Las diferencias fundamentales son que al poder ir viendo qué estás tecleando puedes corregir errores y demás. El incoveniente lo tienes en el modo readOnly, que prácticamente desaparece porque, qué diablos, hay que teclear. Queda a tu programa el controlar que el resultado tecleado/encontrado sea un elemento válido de la lista.
(01-12-2022, 22:31)tincho escribió: Hola Fernando, bienvenido al foro,
(01-12-2022, 18:27)ferchobahia escribió: ... soy Fernando ... a mis 50 años fue empezar ... mudar todo lo que uso a Linux.........no es un ComboBox, que es lo que estas buscando, peeeeero yo también intente primero usar un combobox y finalmente lo descarte porque no logre hacer funcionar bien el filtro de la lista mientras escribís, shordi con comboseek es el que mejor logro este efecto, pero si usas GTK no termina de funcionar bien.
Así que (creo) la solución, para lograr que al escribir en un TextBox se muestre una lista dinámica, pasa por usar una ventana o formulario flotante que se muestre al momento de hacer click en el control.
Acá podes ver como funciona TextList, mas o menos de forma aceptable, pero le falta pulir todavía y ademas no funciona bien cuando el TextBox esta entre medio de otros.
(03-12-2022, 18:38)Shordi escribió:Cita:o si usas una imagen invierte los colores,Para evitar eso el truco es cargar la imagen vía código, entonces va fetén.
Saludos
Image1.Picture = Picture[Camino & Nombre2]
(06-12-2022, 01:14)ferchobahia escribió:Eso no es totalmente correcto. Debes usar el método load de la clase Picture así:(03-12-2022, 18:38)Shordi escribió: Para evitar eso el truco es cargar la imagen vía código, entonces va fetén.
Saludos
ok yo los cargo asi por codigo pero sigue sin funcionar
donde Camino es la carpeta y el Nombre2 es el jpgCódigo:Image1.Picture = Picture[Camino & Nombre2]
no se si hay otra manera
Si lo que pretendes, en cambio es utilizar una de las imágenes del stock entonces debes usar la sintaxis propuesta por ti, pero con los nombres establecidos. Algo así:
[code]
También puedes acceder a las imágenes del stock con la sintaxis:
[code]
Por último recordar que si la imagen en cuestión la incluyes en la carpeta del proyecto, será compilada dentro del ejecutable y se puede cargar usando path relativos (es decir usando el proyecto como carpeta raíz). Así una imagen llamada logo.png que esté ubicada en la carpeta raíz del proyecto se mostraría con:
[code]
Sin usar ningún path.
Saludos
[hr]
[quote]
y estuve probando tu control ComboSeek y la verdad que esta muy bueno y lo voy a implementar en mi proyecto con tu permiso, claro. si sos tan amable Shordi cual es la mejor manera de importar el control, yo normalmente copio la carpeta con todas las clases y lo uso así pero no se si hay una mejor manera
[/quote]
Gracias :blush: .
La manera "profesional" de implementar controles propios es hacer un componente propio. Es decir creas un proyecto que sea un componente y lo instalas en tu máquina. A partir de ahí, sólo tienes que incluir el componente, que aparecerá en la lista de componentes de gambas en el formulario Proyecto->Propiedades del menú. (Hice [url=https://youtu.be/eCr5EOy6nxM]un video tutorial sobre el tema[/url] hace algún tiempo en mi pequeño y semi-abandonado canal de youtube.)
Las ventajas son obvias para ti en tu máquina: Está disponible para todas las aplicaciones presentes y futuras y sólo tendrás que modificar / añadir controles en un lugar.
La desventaja es que complica un poco la distribución de software por cuanto el fuente no reside en un sólo .deb (o .arm o lo que sea), si no en varios.
La solución óptima, que es la que yo utilizaba en mi ambiente profesional, es montar un repositorio propio que incluya ese/os componente/s y tu programa/s. Requiere disponer de una ubicación en internet (o en el servidor local si sólo funcionas en ambiente LAN) donde montarlo, claro. Creo recordar haber subido información sobre el tema en el foro, aunque no recuerdo en qué hilo.
Otra manera de hacerlo más "de andar por casa" es utilizar enlaces simbólicos que ofrece el S.O.
Así si tu proyecto contenedor reside en "~/Gambas3/MisUtilidades" y se llama "Controles" y contiene el control "Comboseek", sólo tienes que crear un proyecto nuevo (pongamos "Proyecto1"), abrir una consola y teclear:
[code]#Nos ubicamos en nuestro proyecto
cd ~/Gambas3/Proyecto1/.src
#creamos un enlace simbólico a la carpeta del control que queremos incluir
ln -s ~/Gambas3/MisUtilidades/.src/Comboseek
#Nos ubicamos en el directorio de los iconos de los controles (si no existe lo creamos primero, claro)
cd ~/Gambas3/Proyecto1/.hidden/control
#hacemos un enlace simbólico al icono que identifica el control enlazado (siempre con el mismo nombre que el control en minúsculas y .png)
ln -s ~/Gambas3/MisUtilidades/.hidden/control/comboseek.png