PDA

Ver la Versión Completa : Como puedo obtener la posicion de un CheckListBox1


alexander66
28-12-2006, 00:18:11
buenas tardes club

estoy usando el componente CheckListBox de la ficha Additional que me va a servir por que puedo seleccionar mas de un check a la vez, en este componente estoy llenandolo con datos de una tabla, cuando yo seleccione alguno como puedo saber en que posicion esta y eso me de el check para usarlo porteriormente

mi ciclo esta asi:
while not eof do
campo:=Fields[0].AsString);
Descripcion:=Fields[1].AsString);
CheckListBox1.Items.Add(campo + ' ' + Descripcion);


encontre esto pero como lo obtengo CheckListBox1.Checked.
me puden ayudar
gracias.

vtdeleon
28-12-2006, 00:45:41
Con la propiedad ItemIndex del ChecklistBox.

Saludos

Onti
28-12-2006, 00:54:53
CheckListBox1.Checked[CheckListBox1.ItemIndex]

Este código te obtiene si el registro seleccionado del CheckListBox tiene el check marcado o no


Salu2

Lepe
28-12-2006, 12:51:47
Basado en lo anterior, puedes construir dos rutinas:


function FirstCheckedItem( ctrl:TCheckListBox):integer ;
begin
for Result:=0 to ctrl.Items.Count-1 do
if ctrl.Checked[Result] then
begin
Break;
end;
if Result > ctrl.Items.Count-1 then
Result := -1;
end;

function NextCheckedItem( ctrl:TCheckListBox;const idxFrom:integer):integer ;
begin
Result := -1;
if idxFrom < 0 then
Result := 0; // si es -1 recorremos todos los items

if (idxFrom > -1) and (idxFrom > ctrl.Items.Count-2) then
Exit // habría que empezar en idxFrom+1 pero no hay más items, idxFrom es el último elemento
else
for Result :=idxFrom+1 to ctrl.Items.Count-1 do
if ctrl.Checked[Result ] then
Break;

// si no hay ninguno marcado
if (Result > ctrl.Items.Count-1) then
Result:=-1;
end;


Saludos