Ir al contenido


Foto

Que un CheckListBox acepte clic en el texto (no solo en el recuadro)


  • Por favor identifícate para responder
2 respuestas en este tema

#1 ramonrafe

ramonrafe

    Member

  • Miembros
  • PipPip
  • 24 mensajes
  • LocationEspaña

Escrito 13 noviembre 2009 - 11:27

Normalmente un CheckListBox solo acepta clic en los  recuadros (que son un poco pequeños) y no el texto de cada item. Si aceptara el clic en el texto sería más cómodo de trabajar con él.

Este "truco" utiliza el evento OnClickCheck y el OnClick con una variable boolean.

Incluyo todo el código de estos 2 eventos.

La variable "se_modifico" (boolean) hay que declararla como global.



delphi
  1. procedure TForm1.CheckListBox1Click(Sender: TObject);
  2. begin
  3.  
  4.   if  not se_modifico    // Marca o quita marca del item
  5.   then
  6.     if CheckListBox1.State[ CheckListBox1.ItemIndex ] =  cbChecked
  7.       then CheckListBox1.State[ CheckListBox1.ItemIndex ] :=  cbUnChecked
  8.       else CheckListBox1.State[ CheckListBox1.ItemIndex ] :=  cbChecked  ;
  9.   se_modifico := False ;
  10.  
  11. end;
  12.  
  13. procedure TForm1.CheckListBox1ClickCheck(Sender: TObject);
  14. begin
  15.  
  16.   Se_Modifico := True ;  // Indica que se hizo clic el item
  17.  
  18. end;



Y para que haya algo de contenido, en la propiedad Items del CheckListBox hay que añadir unas líneas antes de ejecutar el programa.

Espero que sea útil para alguien.

Salu2 a to2.

Ramón.
  • 0

#2 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 13 noviembre 2009 - 11:32

Ey compañero ! Gracias por el aporte (y)... Muy bueno el truquito

Saludox ! :D
  • 0

#3 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 13 noviembre 2009 - 11:34

Muchas gracias Ramón por el aporte, muy útil ;).

Saludos.
  • 0




IP.Board spam blocked by CleanTalk.