Resulta muy práctico hacerlo desde un TActionList, te voy a indicar cómo:
1- Arrastra un TActionList de la paleta Standard.
2- Haz dobleClick sobre el componente TActionList.
3- Pulsa el botón NewAction que se encuentra en la parte superior izquierda del Dialogo, o haciendo clikc con el botón derecho del mouse sobre la lista de la derecha del diálogo y escogiendo NewAction del menú contextual.
4- Selecciona la recién creada acción (Action1), colócale an la propiedad Caption lo que quieras que aparezca en el caption del botón que ejecutará la acción, y el nombre que quieras.
5- Con la Action1 seleccionada, ve a la pestaña EVENTS del inspector de objetos y haz doble click sobre el evento OnExecute, allí debes colocar solamente el código que elimina el item (
no debes colocar aquí el código que controla el estado del control, eso lo haremos en el otro evento).
6- Con la Action1 seleccionada, ve a la pestaña EVENTS del inspector de objetos y haz doble click sobre el evento OnUpdate y colocas el código que te pongo a continuación.
7- Quita todo el código del evento ONClick del botón que elimina los items, allí no coloques nada (esto lo hará la Action1).
8- Selecciona el botón que borra los Items y colocale en su propiedad ACTION la Action1.
Con esto el botón no solo se desactivará cuando no hayan Items, sino que también se activará cuando vuelvan a haber items.
procedure TForm1.Action1Execute(Sender: TObject);
begin
{ Aquí va el procedimiento que quita los Items, obviamente sin colocar nada de (btn_quitar.Enabled := cobrolist.Items.Count > 0) eso ya no lo necesitas, porque lo colocaremos en el otro evento}
end;
procedure TForm1.Action1Update(Sender: TObject);
begin
TAction(Sender).Enabled := cobrolist.Items.Count > 0;
end;
Esta (action1) la puedes asignar a cuantos controles quieras que ejecuten la acción, como por ejemplo a un Item de un PopUpMenu, y notarás que al igual que el botón, se activa o desactiva en función de la cantidad de Items del cobrolist. (Puedes hacer el ejercicio de arrastrar un PopUpmenu, a éste agregar un item, luego al item de menú asignar la acción (Action1), finalmente asigna ese popupmenu al Form y verás como trabaja).
Cualquier inquietud, no dudes en preguntar.
Un saludo.