![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
List Box [D7, XP]
lobach © (2006-09-11 08:59:00)Здраствуйте мастера, у меня такой вопрос:
У меня есть форма, на ней ListBox и кнопка, необходимо получить в ListBox'е список файлов какой-нибудь папки, например 'c:/123'. При нажатии кнопки выделенный файл должен запустится, подскажите как это организовать.
lobach (2006-09-22 05:37:00) [1]
> FileListBox
Сеичас поглядим...
NickCoder (2006-09-21 21:26:00) [2]А не легче ли FileListBox взять!
Там уж через FileName все сделать!
lobach (2006-09-11 19:19:00) [3]
> [8]
> [9]
Извините за кипиш, сам разобрался
procedure TForm1.Button2Click(Sender: TObject);
begin
if not (ShellExecute(Application.Handle, 'open', PChar(ListBox1.Items[ListBox1.itemindex]), nil, PChar(ExtractFileDir(ListBox1.Items[ListBox1.itemindex])), SW_NORMAL) > 32) then
WinExec(PChar('rundll32.exe shell32.dll,OpenAs_RunDLL ' + 'D:\'+ ListBox1.Items[ListBox1.itemindex]), SW_NORMAL )
end;
Путь не прописал...
Джо (2006-09-11 19:04:00) [4]> [9] lobach © (11.09.06 19:02)
> Фантастика!!!
Отнюдь нет. Где ищешь, там и находит.
Джо (2006-09-11 19:04:00) [5]> [8] lobach © (11.09.06 18:51)
> Спасибо за пример, всё нормал, принцип понял, список файлов
> получает, но сам файл не открывает, просто не находит, из
> за чего это???
Что значит "не запускает"? Как ты его "запускаешь"?
lobach (2006-09-11 19:02:00) [6]Еще такая фишка, сохранил проэкт, запустил его, и всё начало работать, но ищет файлы в своём каталоге, находит сам себя и свои исходники. Фантастика!!!
lobach (2006-09-11 18:51:00) [7]
> PSPF2003
Спасибо за пример, всё нормал, принцип понял, список файлов получает, но сам файл не открывает, просто не находит, из за чего это???
PSPF2003 (2006-09-11 12:21:00) [8]procedure TForm1.Button1Click(Sender: TObject);
var
SearchRec: TSearchRec;
begin
ListBox1.Clear;
if FindFirst('c:' + '*.*', faAnyFile, SearchRec) = 0 then begin
if (SearchRec.Name <> '.') or (SearchRec.Name <> '..') then
ListBox1.Items.Add(SearchRec.Name);
while (FindNext(SearchRec) = 0) do
ListBox1.Items.Add(SearchRec.Name);
end;
end;
procedure TForm1.ListBox1DblClick(Sender: TObject);
begin
if not (ShellExecute(Application.Handle, 'open', PChar(ListBox1.Items[ListBox1.itemindex]), nil, PChar(ExtractFileDir(ListBox1.Items[ListBox1.itemindex])), SW_NORMAL) > 32) then
WinExec(PChar('rundll32.exe shell32.dll,OpenAs_RunDLL ' + ListBox1.Items[ListBox1.itemindex]), SW_NORMAL )
end;
Dmitrij_K (2006-09-11 12:11:00) [9]
> А можно пример??
см. [3]
lobach (2006-09-11 12:10:00) [10]А можно пример??
MBo (2006-09-11 11:28:00) [11]Да можно и без цикла, с использованием сообщения LB_DIR, но FindFirst все равно надо научиться пользоваться
Dmitrij_K (2006-09-11 11:27:00) [12]Поиск по форуму, в справке, в яндексе, гугле спасет ОРД
lobach (2006-09-11 11:24:00) [13]Это типа цикл нужен???
PSPF2003 (2006-09-11 09:08:00) [14]FindFirst();
FindNext();
ShellExecute();