![]() |
Trabajo con Componentes
Por favor, soy nuevo y necesito que alguien brinde información sobre el componente CheckListBox sobre como limitar la cantidad de items marcados a uno solo, en tiempo de ejecución :confused:
esp3inform@mail.islazul.tur.cu Gracias por adelantado |
Antes de nada Revisa la Guía de estilo de los foros.
(1) Para saber cuantos ítems tienes seleccionados puedes hacer un recorrido por el CheckListBox (bucle for utilizando Items.Count) e ir sumando los que la propiedad Checked[i] es True. (2) Para detectar cuando un elemento se "marca" puedes utilizar el evento OnClickCheck. (3) Es este evento comprueba cuantos hay y si ya estás en el máximo uelves a ponerlo a False (utilizando la popiedad ItemIndex de la lista). Un saludo. Si tienes problemas ya dirás... |
Manejo y utilización de un CheckListBox.
Hola...
Primeramente leí la Guia de estilos y me pareció muy aleccionadora por tanto, trataré de ser más explicito y claro. Estoy haciendo una aplicación para manejar las Estadisticas del turismo en la entidad Islazul que incorpora un CheckListBox (componente poco nombrado) y que con el cual normalmente se pueden marcar más de un items en tiempo de ejecución, los items son nombres de instalaciones hoteleras que al ser marcados selecciono el informe correspondiente presionando un Button. El dilema en sí es que al marcar un items luego de marcar otro, se borre el anterior marcado, o sea que siempre sea un solo items marcado, yo logré algo como les muestro a continuación, pero como verán no funciona del todo bien.
En esta parte es donde tengo el problema donde hace bien la operación de mantener un solo items marcado pero solo cuando se selecciona un items en la lista que está más abajo del ya marcado, cuando se selecciona un items que este más arriba del anterior lo hace mal. Disculpemme lo extenso de la explicación, y me indican si violo alguna norma del Foro, pero les agradeceria una vez más la colaboración de ustedes. Gracias |
Cita:
|
Agradezco tu ayuda Nef.
Yo hice el siguiente cambio: Agregé un cliclo con la variable " f ", si la sustituyo por la variable " e " en la linea siguiente CheckListBox1.Checked[e]:=false; me hace el mismo proceso pero a la inversa. Disculpa la insistencia y te agradecería nuevamente tu ayuda ya que no logro el objetivo de que el marcado/desmarcado fluya bien. Gracias
|
Hola,
A mí me queda algo como esto, pero, no me termina de convencer el último "for", puesto que creo que necesitas que se habilite un botón siempre que exista al menos un "item marcado" en la lista, y, de no ser así, que se deshabilite el botón:
|
¿Y si se va a limitar la selección de casillas a una sóla, por qué, digo yo, no se usa mejor un simple listbox con MultiSelect en false?
// Saludos |
Hola,
Bueno, pues al cabo yo lo dejaría como sigue... de momento. :)
|
Hola Dec
Realmente la ayuda de los MOUSTROS que saben es indispensable, no se como agradecete a tí esta colaboración solo deseo poder algún día hacer lo mismo con otros. Tambien le agradezco a Nef. y a otros que me hayan dado su valoración. GRACIAS y mis respetos. |
Hola Roman..
Agradecido por tu observación y es cierto que con el List se hace lo mismo y mas facil, pero para mostrar mejor la selección a los usuarios menos entrenados en Windows el Check es lo ideal además que lo hé vinculado a un ComboBox de la siguiente forma: si selecciono en el combo "Total de hoteles" , en el Check se marcan todos o los que se desea marcar, si selecciono por ejemplo "Instalación Hotelera" se selecciona solo un Items del Check. Pueden haber variantes más faciles y versatiles y estoy seguro que muchos de ustedes pueden hayar más de una teniendo en cuenta la respuesta tan rápida y efectiva que me dió Dec. Una vez más gracias. |
Te reitero mi agradecimiento Dec.
Me doy cuenta que primero hay que documentarse y aprender bien antes de comenzar a realizar cualquier proyecto más o menos importante, no obstante, seguramente muchos de ustedes comenzaron poco a poco y luego se desarroyaron en programación así es que tengo esperanzas, ya que la dedicación que pueda tener uno es escencial aparte de la imprescindible ayuda que se reciba de los Super. Gracias y nuevamente mis respetos. |
Hola,
Nada hombre, para eso estamos todos aquí, para aprender un poco, entre otras cosas. :) |
Tambien tienes el TRadioGroup
|
Sostengo el CheckList.
Hola Crandel.
En cierta tu observación, solo que el CheckList dá muchas más opciones en la selección que otros componentes del mismo tipo, tambien brinda más seguridad ya que evita la selección accidenta, claro que supongo que debe haber algún otro componente similar o incluso que haya sido creado fuera de Borland. Si es así te agradeceria que me indicaras donde obtenerlo. De cualquier manera gracias. ;) |
La franja horaria es GMT +2. Ahora son las 05:11:10. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi