Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Простой вопрос! [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]

а что такое открыть папку?


Наверх

Титульная страница Поиск, карта сайта Написать письмо