![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Простой вопрос! [D6, WinME]
pakko © (2002-02-15 21:24:00)Необходимо открыть папку а не файл. Это делать через OpenDialog или ещё как. Подскажите плиз!!!
pakko (2002-02-17 13:03:00) [1]Спасибо всем!!!
VID (2002-02-17 02:43:00) [2]Лови код:
uses ShellAPI, ShlObj;
procedure TForm1.Button1Click(Sender: TObject);
var
TitleName : string;
lpItemID : PItemIDList;
BrowseInfo : TBrowseInfo;
DisplayName : array[0..MAX_PATH] of char;
TempPath : array[0..MAX_PATH] of char;
begin
FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
BrowseInfo.hwndOwner := Form1.Handle;
BrowseInfo.pszDisplayName := @DisplayName;
TitleName := "Please specify a directory";
BrowseInfo.lpszTitle := PChar(TitleName);
BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
lpItemID := SHBrowseForFolder(BrowseInfo);
if lpItemId <> nil then begin
SHGetPathFromIDList(lpItemID, TempPath);
ShowMessage(TempPath);
GlobalFreePtr(lpItemID);
end;
end;
Переменная TempPath содержит полный путь к выбранной папке. Можешь оформить как культурную функцию.
PS: Ю.Зотов такой подход не одобрит, однако, это реальная помощь. :))
Miwa (2002-02-16 23:35:00) [3]В D6 Personal на странице Samples есть ShellTreeWiev - она тоже не подходит?
panov (M) (2002-02-16 18:19:00) [4]А что, TDirectoryListBox тоже не устраивает?
[NIKEL] (2002-02-16 18:15:00) [5]MARcoDEN правильно говорит :
вот эта строчка откроет папку С:\Program Files
ShellExecute(Handle,"open","С:\\Program Files",NULL,NULL,SW_RESTORE);
а эта откроет Проводник с открытой папкой С:\Program Files
ShellExecute(Handle,"explore","С:\\Program Files",NULL,NULL,SW_RESTORE);
и не надо париться с компанентами :)
pakko (2002-02-16 17:59:00) [6]Подскажите?
pakko (2002-02-16 16:10:00) [7]А где взять сей компонент?
Petrovich (2002-02-16 13:55:00) [8]Надо использовать не OpenDialog а RX компонент Directory Edit
MARcoDEN (2002-02-16 11:32:00) [9]Можно также использовать ShellExecute c параметром explore
Юрий Зотов (M) (2002-02-15 21:44:00) [10]См. функции SelectDirectory (Delphi) и SHBrowseForFolder (API). Они и диалог покажут, и прогресс отразят (если надо) и т.д.
pakko (2002-02-15 21:35:00) [11]В стандартном виндузовском диалоге открытия если через opendialog, то только файл можно выбрать и нажать открыть. Мне нужно папку.
MBo (2002-02-15 21:33:00) [12]а что такое открыть папку?