Hola, está bien que lo hayas solucionado, pero el código que pusiste no tiene mucho sentido:
Código Delphi
[-]n:integer;
begin
for n:=0 to Lista.Items.Count-1 do begin
ListaElegidos.Items.Delete(ListaElegidos.ItemIndex);
Aquí lo que estas haciendo es recorrer todos los ítems para nada, porqué después a la hora de borrar el ítem, utilizas el valor ItemIndex, que contiene el índice del ítem seleccionado.
Saludos.