RE:check en un elemento del Listview
Me he puesto a probar el código, y he comprobado que efectivamente el evento Change no te servirá. Hay que buscarle otra solución.
¿Qué Delphi tienes? Porque el ListView que viene con el mío no tiene checkbox para los elementos, y los implemento mediante un ImageList asignado a la propiedad StateImages, el que tiene dos imágenes para los estados del checkbox (una con tilde y otra sin tilde), y realizo el cambio de estado por código en el evento OnMouseDown cuando se pulsa el botón izq. del ratón sobre el icono de estado. De esta forma, Al hacer el cambio de estado por código de esta manera entonces yo sé cuándo opera un cambio y puedo si quiero realizar un procesamiento con eso:
procedure TForm1.ListView1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
ListItem: TListItem;
begin
if Button = mbLeft then
if htOnStateIcon in TListView(Sender).GetHitTestInfoAt(X, Y) then
begin
ListItem := TListView(Sender).GetItemAt(X, Y);
if ListItem <> nil then begin
ListItem.StateIndex := 1 - ListItem.StateIndex;
ShowMessage('Cambio de estado');
end;
end;
end;
Espero que te sea de utilidad.
Ernesto De Spirito
http://www.latiumsoftware.com/es/index.php