Hola teecweb.
No cuál sea el contenido del
TCheckListBox, pero basta con que realices esta simple prueba en una nueva aplicación para comprobar que la propiedad
ItemIndex devuelve el valor del índice actual:
Código Delphi
[-]
...
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
begin
for i:= 1 to 10 do
CheckListBox1.Items.Add('Item '+IntToStr(i));
end;
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
ShowMessage('Indice item actual: '+IntToStr(Integer(CheckListBox1.ItemIndex))+#10+
'Valor item actual : '+CheckListBox1.Items[CheckListBox1.ItemIndex]);
end;
...
Es decir que si el CheckListBox tiene algún contenido, el código:
Código Delphi
[-]
procedure TForm1.CheckListBox1Click(Sender: TObject);
begin
Caption:= IntToStr(Integer(CheckListBox1.ItemIndex));
end;
mostrará el índice actualmente seleccionado.
Lo que podría suceder es que no estés llamándo el código en el evento
OnClick del
TCheckListBox, en ese caso sí es necesario comprobar el valor de la propiedad
ItemIndex:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
if CheckListBox1.ItemIndex = -1 then
ShowMessage('¿ No le parece que debería seleccionar algo primero ?')
else
Caption:= IntToStr(Integer(CheckListBox1.ItemIndex));
end;
Saludos.