Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-03-2005
Avatar de ixMike
ixMike ixMike is offline
Miembro
 
Registrado: feb 2004
Posts: 1.151
Poder: 22
ixMike Va por buen camino
cosas raras

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

Última edición por Neftali [Germán.Estévez] fecha: 22-03-2005 a las 08:48:54. Razón: POner TAGs para facilitar la lectura de código
Responder Con Cita
  #2  
Antiguo 21-03-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
No me convence esto:
Código Delphi [-]
lista := tstringlist.create;
lista := openD.files;
...
lista.free;
Digamos.. Estas creando un objeto del tipo TStringList y se lo asignas a la variable "lista", en el siguiente instante sobreescribes el valor de la variable con una porpiedad del mismo tipo del TOpenDialog, y luego haces un free del objeto del open dialog!!!!!
Replantéalo, eso no esta bien!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:12:49.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi