FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cómo dejar desplegado un ComboBox e inmovil?
Hola a todos, pues necesito que un ComboBox se quede desplegado y que no se contraiga, he intentado varias cosas pero no encuentro ninguna característica, a ver si alguien sabe cómo lo podría hacer.
Ah! , y tambien preguntarles si se puede cambiar el límite máximo de Items que se le puede agregar al ComboBox, pues creo que el máximo es 6700 y yo necesito unos 86000 lineas. De antemano gracias y espero poderles ayudar también a ustedes en un futuro. |
#2
|
||||
|
||||
Hola y bienvenido.
Sobre la primera pregunta, creo que lo que buscas lo hace el TListBox. 86000 lineas... ¿ Las tenés almacenadas en memoria ? Si no es así, pareciera mas adecuado el uso de TDBLookupComboBox. Saludos. |
#3
|
|||
|
|||
Hola, gracias por tu respuesta, la razon por la que estoy usando el ComboBox para que me permita filtrar lo que voy escribiendo en el campo superior que este tiene, intenté con el listBox pero no puede encontrar una propiedad que me permita escribir en la parte superior y filtrar con lo que hay debajo, te agradecería si me pudieras decir si tiene esa propiedad.
En cuanto a las 86000 lineas, son en realidad 86000 palabras que quiero que se filtren mientras se escribe arriba pero quiero que la lista de opciones no se repliegue y tampoco quiero usar una base de datos. Espero haber sido más claro. Gracias |
#4
|
||||
|
||||
Cita:
con esa letra, no hace lo que buscas... En al segundo punto, en realidad no es importante si son palabras o frases completas, lo que veo como limitante es el número máximo de líneas. Que para serte sincero desconocía que fuesen 6700. En realidad si me dicen un número tan alto de items yo pensaria en almacenarlos en disco. Voy a pensar y buscar algo más sobre el tema, si me surge algo te aviso. Saludos. |
#5
|
||||
|
||||
Hola de nuevo.
Me quedé con dudas sobre la capacidad del Combo he hice una prueba:
Tardó en llenarlo, pero no provocó excepción... ¿ Estas seguro que son sólo 6700 items ? Saludos. Última edición por ecfisa fecha: 09-10-2010 a las 02:19:10. |
#6
|
||||
|
||||
Quizá podría usar un ClientDataSet guardando los datos en un xml o el formato nativo del CDS y de esta manera puede usar conroles de bases de datos sin realmente usar una base de datos.
// Saludos |
#7
|
||||
|
||||
Cita:
Saludos. |
#8
|
|||
|
|||
hola Ecfisa y Roman, en realidad yo estoy empezando y no entiendo mucho lo de xml , clientDataSet, ni base de datos , asi que tendré que esperar a aprender a utilizar estos componentes segun la idea que dio Roman.
En cuanto al experimento que hizo Ecfisa, pues yo agregué las palabras a partir de un diccionario de palabras de esos que se utilizan para hacer ataques por fuerza bruta, o sea que lo hice copie y pegue, tal vez haciendolo de esta manera se limita a 6700, no sé, si quieren busquen el diccionario en la pagina GragonJar como "listado de diccionarios fuerza bruta" en google, entre los que alli estan está el de 69000 palabras, no les dejo el enlace porque el foro no me deja.. el principal problema es el limite de tamaño, digamos que logro reducir el numero de palabras a menos de 6700, entonces me podrías decir como hago para que el ComboBox quede deplegado y estático?, a proposito no sé si tal vez tengas un diccionario de palabras en español (para fuerza bruta), pues el que tengo es el de las 60000 palabras y quisiera uno que tenga las más comunes del español que no creo que sobrepasen las 6000. Me debo ir pero les agradezco mucho su tiempo y sus respuestas y cualquier sugerencia más luego les consulto porque estoy en un ciber jeje Saludos. Última edición por WPascal fecha: 09-10-2010 a las 02:49:52. |
#9
|
|||
|
|||
Hola amigos, les cuento que ya solucione el problema del limite maximo, lo que debia hacer era en vez copiar y pegar, darle click derecho y seleccionar load y cargar el archivo de texto y cargo muy bien aunque como ya dijiste, se demora.
Ahora la duda que me queda es si se puede bloquear el ComboBox para que quede desplegado. Que esten bien. |
#10
|
||||
|
||||
Hola.
El único modo que se me ocurre es que te crees un descendiente de TComboBox y redefinas el evento OnCloseUp, bastante complicado... Si sólo deseas que se despliegue el combo cuando tiene el foco, podés hacer: Pero se te va a replegar cuando lo pierda. Es muchísimo más sencillo como sugirió roman. Ponés un TClientDataSet hacés doble click sobre el componente y en el editor de campos -> botón derecho del mouse -> new field. Le das un nombre, tipo string y la longitud que desees. Ejemplo de carga: ( 'palabra' es el nombre del campo en el ejemplo )
Luego le asociás el DataControl que más te convenga, DBLookupCombobox, TDBLookupListBox, DBGrid... Saludos. Última edición por ecfisa fecha: 09-10-2010 a las 10:29:58. |
#11
|
|||
|
|||
Ok Ecfisa, intentaré hacer lo que me estás sugiriendo, el primer código que me sugeriste para darle foco al ComboBox , se lo puedo asignar a un botón, cierto?
me podrías explicar más o menos cómo funciona? porque me parece que me puede ayudar, pues necesito que por lo menos el ComboBox se despliegue al presionar un botón pero no necesariamente al escribir sobre él con el teclado. Para que me entiendas mejor, dichos botones lo que hacen es escribir sobre el campo del ComboBox reemplazando al teclado, pero al escribir el ComboBox no se despliego porque no estoy escribiendo sobre él con teclado sino con los botones. Si lo deseas y para que me entiendas mejor te dejo el archivo en la zona de FTP del foro>Delphi>Ejemplos>Teclado en pantalla con base de palabras.rar , para que veas lo que quiero hacer. Saludos |
#12
|
||||
|
||||
Cita:
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#13
|
||||
|
||||
Cita:
CB_SHOWDROPDOWN es un mensaje para decirle a windows que oculte o muestre el Combo. (siempre que este no tenga el estilo igual a csSimple) Podés enviar mensajes con dos funciones más: SendMessage y PostMessage: PostMessage pone el mensaje en la cola y retorna , sólo devuelve si se pudo insertar el mensaje o no. SendMessage espera que se procese el mensaje y retorna, devuelve mensajes de consulta. Ejemplos:
Saludos. |
#14
|
|||
|
|||
Ok Ecfisa, entonces intentaré aplicarle esta función a los botones del programa y luego te aviso cómo me fue.
Gracias por tu ayuda. En cuanto a la sugerencia de rgstuamigo, pues es interesante pero como les digo, estoy empezando a manejar Delphi y por el momento solo manejo los componentes básicos, claro que espero más adelante saber lo que ustedes saben jeje. Nuevamente gracias Ecfisa. Seguimos hablando |
#15
|
||||
|
||||
Cita:
Espero que con eso soluciones tu problema. Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
|
#16
|
||||
|
||||
Cita:
Ganas de complicarnos que tenemos algunos... Saludos. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
como mostrar la ventana de lenar inten de un combobox en tiempo de un combobox | gulder | Varios | 3 | 19-05-2007 19:55:58 |
Q propiedad del dblookupcombobox no lo muestra desplegado? | mariachiquero | Varios | 6 | 10-05-2007 13:56:57 |
Efecto en desplegado | Jorghino reyes | Varios | 1 | 10-09-2005 18:17:58 |
Como dejar Delphi maximizado????? | Antuan | Varios | 2 | 01-08-2005 12:18:58 |
!TmainMenu Desplegado | Carlosguiland | OOP | 1 | 09-11-2004 19:28:11 |
|