![]() |
|
|
|
|
#1
|
|||
|
|||
|
Вроде не видел...
Объясните такую вещь,пожалуйста: в ListBox1 выводятся результаты поиска подпапок в папке (FindRes и т д). Так вот, как при щелчке на строке ListBox1, заставить ListBox2 показывать файлы, находящиеся в этой подпапке? Как к адресу нового поиска добавить значение в выделенной строке? ( FindRes := FindFirst('c:\\папка1\\' + p + '\\*.*', faAnyfile, SR;, где p - подпапка, выделенная в ListBox1. как это самое р получить???). |
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.ListBox1Click(Sender: TObject);
var
p:string;
i:integer;
begin
listbox2.Clear;
for i:=0 to listbox1.count-1 do begin
if listbox1.Selected[i]=true then p:=listbox1.items.strings[i];
end;
//А потом необходимо использовать процедуру поиска заново, но сообщить ей о том, что необходимо передавать информацию не в ListBox1, а в ListBox2.
end; |
|
#3
|
|||
|
|||
|
Да, забыл сказать, что не используй Multiselect в ListBox1.
|
|
#4
|
|||
|
|||
|
Спасибо большое! только я использовал её в несколько сокращённом виде:
p:=listbox1.items.strings[listbox1.itemindex] в общем то нужный эффект достигнут ![]() Теперь у меня другой вопрос: как бы теперь по двойному щелчку выбранный в ListBox2 файл запускать (для определённости возмём .htm)??? |
|
#5
|
|||
|
|||
|
Код:
procedure TForm11.ListBox1DblClick(Sender: TObject);
begin
if not FileExists(путь_к_файлу+его расширение) then begin
application.messagebox('Выбранный файл отсутствует','Ошибка',0);
exit;
end else
WinShellOpen(Путь_к_файлу+'.html');
end;После двойного клика на строку будет ассоциативное выполнение выбранного файла. |
|
#6
|
|||
|
|||
|
Гм. А что означает
Unsatisfied forward or external declaration: 'TForm1.WinShellOpen' ? |