Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Delphi! Strings and Tstrings!

Жорик Шольный Знаток (449), закрыт 15 лет назад
Есть листбокс1. В него добавляются адреса файлов, найденные одной функцией.
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.
Как испавить?
Лучший ответ
Великий Шушпанчик Мудрец (12433) 16 лет назад
Деточка, не мучай людей, пиши
GetFiles('C:\music\', true);
Источник: В свои 20 лет он знал 9 операционных систем и ни одной женщины
Остальные ответы
Алёна Ученик (174) 16 лет назад
правильно ругается. ты пытаешься в процедуру передать неправильный тип. вмето Tstrings сочетание строки и набора строк. убери 'C:\music' + .путь, судя по коду процедуры он должен внутри GetFiles полный прописывать. Если не прописыват - разбирайся с кодом процедуры.
Похожие вопросы