Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Qué parámetro falta en este procedure (https://www.clubdelphi.com/foros/showthread.php?t=92347)

SaraTorres 05-10-2017 03:13:24

Qué parámetro falta en este procedure
 
Chicos,
Esta consulta es fácil para ustedes, pero como soy algo nueva en Delphi, no entiendo : /

Quiero saber qué sigue porqué me tira error la acción de esta procedure y me selecciona
lo que esta en negrito, o qué debe ir llamar la procedure "BuscarArchivos"

BuscarArchivos('C:\', '*.*',true, FilesList);


El procedure original es este.

procedure BuscarArchivos(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
.
..
... etc

Muchas gracias

AgustinOrtu 05-10-2017 03:17:50

Hola SaraTorres, faltan algunos datos para poder identificar el problema. No podrias copiar y pegar el procedimiento en donde invocas esta linea:

Código Delphi [-]
BuscarArchivos('C:\', '*.*',true, FilesList);

Aparentemente no te falta ningun parametro, pero lo que le estas pasando como FileList debe ser un objeto de clase TStringList

SaraTorres 05-10-2017 03:32:04

Cita:

Empezado por AgustinOrtu (Mensaje 521535)
Hola SaraTorres, faltan algunos datos para poder identificar el problema. No podrias copiar y pegar el procedimiento en donde invocas esta linea

Este es el código original que encontré:
Lo que necesito es saber cómo llamar esta procedure. Muchas gracias

Código Delphi [-]
procedure FindFiles(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
  const
    MASK_ALL_FILES = '*.*';
    CHAR_POINT = '.';
  var
    SR: TSearchRec;
    DirList: TStringList;
    IsFound: Boolean;
    i: integer;
  begin
    if (StartDir[length(StartDir)] <> '\') then begin
      StartDir := StartDir + '\';
    end;
 
    IsFound := FindFirst(StartDir + FileMask, faAnyFile - faDirectory, SR) = 0;

    while IsFound do  begin
      FilesList.Add(StartDir + SR.Name);
      IsFound := FindNext(SR) = 0;
    end;
 
    FindClose(SR);
 
    if (recursively) then begin
      DirList := TStringList.Create;
      try
        IsFound := FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0;
        while IsFound do
        begin
          if ((SR.Attr and faDirectory) <> 0) and
            (SR.Name[1] <> CHAR_POINT) then
            DirList.Add(StartDir + SR.Name);
          IsFound := FindNext(SR) = 0;
        end;
        FindClose(SR);
 
        for i := 0 to DirList.Count - 1 do
          FindFiles(DirList[i], FileMask, recursively, FilesList);
      finally
        DirList.Free;
      end;
    end;
  end;

ecfisa 05-10-2017 05:56:22

Hola.
Cita:

Empezado por SaraTorres (Mensaje 521537)
...
Lo que necesito es saber cómo llamar esta procedure. Muchas gracias
...

En el mensaje #5 de este hilo: Aplicacion de Busqueda Recursiva de Archivos en Disco, tenes un ejemplo de como llamar a esa función. ( TForm1.BuscarClik )

Saludos :)

Neftali [Germán.Estévez] 05-10-2017 10:01:17

Hola Sara.
Si el error te da en esa variable, justo nos falta saber cómo has definido y creado (dado que es un objeto) esa variable.
También es bueno, para próximas consultas, que si te da un error, pongas cual es.


Cita:

Empezado por SaraTorres (Mensaje 521534)
Quiero saber qué sigue porqué me tira error la acción de esta procedure y me selecciona
...
BuscarArchivos('C:\', '*.*',true, FilesList);
...



La franja horaria es GMT +2. Ahora son las 06:16:39.

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