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

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

Как вызвать диалог выбора папки??? [D7, XP]


savyhinst ©   (2008-04-11 14:17:00) 

Здраствуйте.
Подскажите пожалуйста, как вызвать диалог выбора папки???
Спасибо за внимание.


clickmaker   (2008-04-11 17:23:00) [1]

а также ShellTreeView и DirectoryOutline


Германн   (2008-04-11 17:18:00) [2]


> Anatoly Podgoretsky ©   (11.04.08 14:53) [7]
>
> > Семеныч  (11.04.2008 14:31:03)  [3]
>
> Тебе не досталось, мы все раздали.
>

Врешь. Не всё. В загашнике ещё TDirectoryListBox валяется.


webpauk   (2008-04-11 15:13:00) [3]

unit BrowseDialog;

interface

uses
 Windows, Messages, SysUtils, Classes, Controls, ShlObj, Forms;

type
 TBrowseDialog = class(TComponent)
 private
   fFlagOnlyDir: Boolean;
   fFlagEditBox: Boolean;
   fFlagStatusText: Boolean;
   fText: String;
   fDir: String;
 public
   function Execute: Boolean;
 published
   property OnlyDir: Boolean read fFlagOnlyDir write fFlagOnlyDir;
   property EditBox: Boolean read fFlagEditBox write fFlagEditBox;
   property StatusText: Boolean read fFlagStatusText write fFlagStatusText;
   property Title: String read fText write fText;
   property Dir: String read fDir;
 end;

procedure Register;

implementation

procedure Register;
begin
 RegisterComponents('Dialogs', [TBrowseDialog]);
end;

function TBrowseDialog.Execute: Boolean;
var
 lpItemID: PItemIDList;
 path: array[0..Max_path] of Char;
 BrowseInfo: TBrowseInfo;
begin
 Result:=False;
 FillChar(BrowseInfo, SizeOf(TBrowseInfo), #0);
 SHGetSpecialFolderLocation(TApplication(Owner).Handle, csidl_desktop, BrowseInfo.pidlRoot);
 with BrowseInfo do
 begin
   hwndOwner:=TApplication(Owner).Handle;
   lpszTitle:=PChar(fText);
   if fFlagOnlyDir then ulFlags:=ulFlags+BIF_RETURNONLYFSDIRS;
   if fFlagEditBox then ulFlags:=ulFlags+BIF_EDITBOX;
   if fFlagStatusText then ulFlags:=ulFlags+BIF_STATUSTEXT;
 end;
 lpItemID := SHBrowseForFolder(BrowseInfo);
 if lpItemId<>nil then
 begin
   SHGetPathFromIDList(lpItemID, Path);
   fDir:=path;
   Result:=True;
   GlobalFreePtr(lpItemID);
 end;
end;

end.


Семеныч   (2008-04-11 15:10:00) [4]

Вот так всегда. Злые вы, уйду я от вас... к Коле Быкову...


Anatoly Podgoretsky   (2008-04-11 14:53:00) [5]

> Семеныч  (11.04.2008 14:31:03)  [3]

Тебе не досталось, мы все раздали.


Johnmen   (2008-04-11 14:37:00) [6]


> Семеныч   (11.04.08 14:31) [3]
> И я тоже хочу!

Хотел, но не смог :))


clickmaker   (2008-04-11 14:36:00) [7]

это не спортивно
SHBrowseForFolder )


{RASkov}   (2008-04-11 14:35:00) [8]

> [3] Семеныч   (11.04.08 14:31)

две-то есть(uses FileCtrl), а третья откуда? ;)


Семеныч   (2008-04-11 14:31:00) [9]

И я тоже хочу!

> savyhinst ©   (11.04.08 14:17)  

SelectDirecory


Anatoly Podgoretsky   (2008-04-11 14:21:00) [10]

> savyhinst  (11.04.2008 14:17:00)  [0]

SelectDirectory


Palladin   (2008-04-11 14:17:00) [11]

SelectDirectory


Наверх

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