Hola, forofos
Tengo un problemilla un tanto extraño:
En un programa necesito añadir en una lista (TListBox) los nombres de varios archivos. Uso un codigo para evitar que en la lista se añadan dos archivos con el mismo nombre, aunque esten en distintos directorios. Sencillamente uso ExtractFileName en todos los elementos de la lista y los de los archivos que he abierto con un TOpenDialog. El codigo es el siguiente:
Código Delphi
[-]
procedure TFComprimidos.BAnadirFicheroClick(Sender: TObject);
var
n, i, c: integer;
lista: tstrings;
begin
if opend.execute and fileexists(OpenD.FileName)then
begin
lista:=tstringlist.create;
lista:=openD.files;
if LFicheros.Items.Count=0 then
begin
LFicheros.Items:=openD.Files;
exit;
end;
n:=lficheros.items.count-1;
i:=lista.Count-1;
repeat
repeat
if UpperCase(ExtractFileName(LFicheros.Items[n]))=uppercase(ExtractfileName(lista[i]))then lista.Delete(i);
i:=i-1;
until i=-1;
n:=n-1;
until n=-1;
if lista.Count>0 then
for c:=0 to lista.count-1 do
LFicheros.Items.Add(lista[c]);
lista.free;
end;
end;
El problema es que cuando el la lista (LFicheros) ya hay algo metido, al volver a darle al boton me sale esta excepcion
"List index out of bounds (-1)"
Mi duda es por qué se produce este error, ya que ese "-1" se da en la variable "n" justo después de inicializarla con el valor "LFicheros.Items.Count-1"
Alguien puede ayudarme???
Gracias desde YA
Salu2 a todo el club