Имхо, проще всего завести второй список (TStringList), в котором хранить полные имена файлов. В ListBox загружать только имя, без пути. И по двойному клику на элементе обращаться не к ListBox1.Items[i], а к этому TStringList...
Добавлено через 5 минут и 36 секунд Поясняю.
| Код | type TForm1=class.... ....... private FFullNames:TStringList; ........ end;
implementation
procedure FindFiles(StartFolder, Mask: string; List, FullNames: TStrings; ScanSubFolders: Boolean = True); begin .... if MatchesMask(Name, Mask) then begin FullNames.Add(StartFolder +Name); List.Add(Name); end; ... end;
procedure TForm1.FormCreate(...); begin FFullNames:=TStringList.Create; end;
procedure TForm1.FromDestroy(...); begin FFullNames.Free; end;
procedure TForm1.Button2Click(Sender: TObject); begin Memo1.Lines.LoadFromFile(FFullNames[ListBox1.ItemIndex]); end;
|
Добавлено через 6 минут и 29 секунд Ну и вызов, соответственно
| Код | procedure TForm1.Button1Click(Sender: TObject); begin FindFiles('C:\MYFILE', '*.*',ListBox1.Items, FFullNames, true); end;
|
|