Алёна
Ученик
(174)
16 лет назад
правильно ругается. ты пытаешься в процедуру передать неправильный тип. вмето Tstrings сочетание строки и набора строк. убери 'C:\music' + .путь, судя по коду процедуры он должен внутри GetFiles полный прописывать. Если не прописыват - разбирайся с кодом процедуры.
function GetFiles(Path:String; Full: Boolean = False):TStrings;
Var
Rec:TSearchRec;
TMP:TStrings;
ls: String;
i: integer;
begin
Result:=TStringList.Create;
if Path[Length(Path)]<>'\' Then Path:=Path+'\';
//ChDir(Path);
if FindFirst(Path+'\*.*',faAnyFile,Rec)=0 then
begin
if (Rec.Name<>'.')and(Rec.Name<>'..') then
if (Rec.Attr and faDirectory) <> 0 then begin
TMP:=GetFiles(Path+Rec.Name,True);
Result.AddStrings(TMP);
TMP.Free;
end else Result.Add(Path+Rec.Name);
while FindNext(Rec)=0 do
begin
if (Rec.Name<>'.')and(Rec.Name<>'..') then
if (Rec.Attr and faDirectory) <> 0 then begin
TMP:=GetFiles(Path+Rec.Name,True);
Result.AddStrings(TMP);
TMP.Free;
end else Result.Add(Path+Rec.Name);
end;
end;
if not Full then
for i:=0 to Result.Count-1 do
begin
ls := Result;
Delete(ls,1,Length(Path));
Result := ls;
end;
end;
Добавлятся то все добавляется
пример: ListBox1.Items.Assign(GetFiles(C:\music\);
Но добавляются без начального пути (C:\music).
При попытке сделать: ListBox1.Items.Assign('C:\music' + GetFiles(C:\music\); говорит, что - то неправильные incompatible typs Strings and Tstrings.
Как испавить?