Hola, estoy dandole vueltas a un codigo que parece sencillo a primera vista pero no hace lo que le pido. No da error ni de compilacion ni de ejecucion, pero no muestra lo que debería. El codigo es este...
Código Delphi
[-]
...
function barra(cadena: string): string;
var
i: integer;
begin
for i:= 0 to length(form2.Edit1.Text) do if (form2.Edit1.Text[i]) = '\' then
begin
form2.Edit1.SetFocus;
form2.Edit1.SelStart:= 0;
form2.Edit1.SelLength:= i-1;
form2.label1.Caption:= form2.edit1.SelText;
end
end;
function NroArchivos(const Ruta: string): Integer;
var
SRec: TSearchRec;
Attr, re: Integer;
begin
Result:= 0;
Attr:= faSysFile + faAnyFile + faArchive + faHidden + faReadOnly;
re:= FindFirst(Ruta + '*.*' , Attr, SRec);
while re = 0 do
begin
Inc(Result);
re:= FindNext(Srec);
end;
end;
procedure TForm2.Button1Click(Sender: TObject);
begin
barra(edit1.Text);
button1.SetFocus
end;
procedure TForm2.Button2Click(Sender: TObject);
begin
label2.Caption:= IntToStr(nroArchivos(barra(edit1.Text)));
end;
end.
¿En label2.caption, no debería de aparecer el número de archivos que hay en la ruta indicada en label1.caption? Me dice que hay 2 archivos, pero en esa ruta "C:\hemy\prueba" hay actualmente 1695 archivos. ¿por que me devuelve 2?
Esto lo hago para calcular el maximo de una barra de progreso, pero como me da 2 (a veces 0) pues la barra ni se mueve.
¿Alguna sugerencia?
Saludos y gracias.