Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-12-2004
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hint en items de un ComboBox

Hola amigos del foro, una vez más me dirijo a ustedes solicitando su generosa ayuda. Tengo en mi aplicación varios Combobox pero el ancho de muchos de ellos no es suficiente para la longitud del item, quedando parte de este oculto para el usuario, me gustaría que al posicionar el mouse sobre uno de estos ítems se mostrara un Hint o algo por el estilo que permita la lectura de todo su contenido.



De antemano muchas gracias.



Un cordial saludo Yusnerqui.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #2  
Antiguo 17-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Te refieres a que cuando se despliegue la lista de items, al ir recorriendo con el ratón se muestre un hint indicando el texto completo?

Pues en estos momentos no sé cómo hacerlo pero ¿no te sirve aumentar el ancho de la lista, no del combo, solo de la lista desplegable?

- ¿Cómo se aumenta el ancho?

- Con la propiedad DropDownWidth

- No hay propiedad DropDownWidth

- ¿Nooo? Pero si un DBLookUpComboBox sí tiene esa propiedad, ¿dónde la habrá dejado Borland?

Entonces usa

ComboBox1.Perform(CB_SETDROPPEDWIDTH, 300, 0);

// Saludos
Responder Con Cita
  #3  
Antiguo 17-12-2004
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Gracias

Muchas gracias Roman, es lo que tengo hecho hasta ahora, pero me gustaría mostrar los hint, es más elegante, puesto que en ocasiones tengo items muy pequeños y otros más largos en el mismo combo y no se ve muy estético que digamos.



De todos modos mil gracias, y si alguien tiene otra idea será bienvenida, por mi parte comencé a trabajar haciendo una componente que heredé del TCombobox, usando un TTimer y el evento onDrawItems voy a ver que saco, aunque esto tiene como inconveniente que este evento solo se dispara cuando la propiedad Style tiene ciertos valores... En fin si logro algo después les cuento



Saludos y reitero mi agradecimiento.
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #4  
Antiguo 18-12-2004
Fernando Fernando is offline
Miembro
 
Registrado: ago 2003
Posts: 77
Poder: 21
Fernando Va por buen camino
Hola Dephicólicos:

En Trucomanía (www.q3.nu) existen algunos ejemplos para ComboBox. Tal vez modificándolos se logre desplegar el Hint que necesitas.

Salu2
Responder Con Cita
  #5  
Antiguo 21-12-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por yusnerqui
y si alguien tiene otra idea será bienvenida
Una forma relativamente sencilla es usando esta idea de Peter Below de los foros de Borland.

Básicamente usas el evento OnIdle de una componente TApplicationEvents que se genera cada vez que la aplicación no se encuentra procesando un mensaje, o sea, virtualmente casi siempre, de manera que evitas el uso de un Timer.

En este evento usas funciones de la API de Windows para:

1. Determinar la ventana que esté bajo el cursor.
2. Determinar si esta ventana es de tipo ComboLBox- el tipo de ventana de la lista desplegable del combo.
3. En tal caso, obtener el ítem de la lista bajo el cursor.

Con esto ya tienes el texto que debes mostrar en el hint y mandando el mensaje LB_GETITEMRECT a la lista obtienes la posición del ítem y por tanto el lugar donde debes desplegar el hint.

Tiene el problema de que si tienes varios combos, será un poco difícil determinar a cuál de ellos pertenece la lista aunque supongo que podrías examinar la propiedad DroppedDown de cada uno de ellos para ver cuál tiene desplegada la lista.

-----

Otra opción es crearte un derivado de TComboBox que haga lo siguiente:

1. Determine el identificador de su lista desplegable
2. Reemplace el manejador de ventana de esta lista para poder detectar el mensaje WM_MOUSEMOVE y saber así cuándo mostrar el hint.
3. Determine ahí mismo si realmente es necesario mostrar el hint comparando la longitud del ítem con el ancho de la lista.
4. Si es necesario mostrar el hint, crear una ventana THintWindow para mostrarlo.

Si te interesa, puedes ver la componente TComboHintsBox que hace todo esto en mi página.

Apenas la he programado así que muy posiblemente tenga detalles que haya que revisar pero es un comienzo...

// Saudos
Responder Con Cita
  #6  
Antiguo 23-12-2004
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Talking Mil Gracias

Un par de días alejado de internet casi hacen que me pierda este magnífico post de el amigo Román, pues solo me resta agradecerte y comenzar a probar lo que me dices, además confesarte que con cada post que publicas aprendo más que en una hora búsquedas por internet(no por esto voy a dejar de esforzarme buscando antes de lanzar una pregunta) pero de veras que la calidad de tus respuestas es admirable, sin menospreciar a los demás chicos del equipo que también se esfuerzan y ofrecen el tiempo del que disponen en ayuda de los necesitados.

En fin mil gracias a todos, que tengan una feliz navidad y un próspero año nuevo.

Saludos Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #7  
Antiguo 08-02-2007
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
buenas la verdad estoy trando de hacer lo mismo que el amigo yusnerki, pero no he encontrado nada y la pagina que publica roman no se encuentra, alguien que sepa la solucion me podria ayudar.... muchas gracias
__________________
JaiMelendez
Responder Con Cita
  #8  
Antiguo 08-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Prueba aquí

http://romansg.net

// Saludos
Responder Con Cita
  #9  
Antiguo 08-02-2007
JAI_ME JAI_ME is offline
Miembro
 
Registrado: ene 2006
Posts: 188
Poder: 19
JAI_ME Va por buen camino
gracias Roman, la verdad hay muy pocas personas como usted... que ayudan a los demas de una forma desinterezada.
__________________
JaiMelendez
Responder Con Cita
  #10  
Antiguo 08-02-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Hombre, gracias por el piropo, pero, felizmente, en este Club hay muchísimos foristas que ayudan a otros, todos sin ningún interés. Y cada vez hay más

// Saludos
Responder Con Cita
  #11  
Antiguo 14-12-2017
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Amigo Roman me encuentro en la misma tesitura que el resto y no puedo descargar tu componente.
Se que el post es mega antiguo pero ¿no lo tendrias aun para podermelo pasar? Me harias un favor grande.
Responder Con Cita
  #12  
Antiguo 14-12-2017
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Aquí está



LineComments Saludos
Archivos Adjuntos
Tipo de Archivo: zip ComboHintsBox.zip (28,3 KB, 22 visitas)
Responder Con Cita
  #13  
Antiguo 14-12-2017
Avatar de aguml
aguml aguml is offline
Miembro
 
Registrado: may 2013
Posts: 885
Poder: 11
aguml Va por buen camino
Mil gracias amigo!!! Lo he probado y eres un crack.
Tengo que aprender a hacer estas cosas
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 07:11:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi