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
procedure TForm1.CheckListBox1Click(Sender: TObject); begin if not se_modifico // Marca o quita marca del item then if CheckListBox1.State[ CheckListBox1.ItemIndex ] = cbChecked then CheckListBox1.State[ CheckListBox1.ItemIndex ] := cbUnChecked else CheckListBox1.State[ CheckListBox1.ItemIndex ] := cbChecked ; se_modifico := False ; end; procedure TForm1.CheckListBox1ClickCheck(Sender: TObject); begin Se_Modifico := True ; // Indica que se hizo clic el item 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.