|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Установить начальный каталог в SelectDirectory
Доброго времяни суток Мастера подскажите, есть ли возможность установить начальный каталог в SelectDirectory так что бы дерево папок развернулась до указанной папки, и была возможность перемещаться по нему вверх в плоть до выбора диска
|
#2
|
||||
|
||||
Возможность есть, весь секрет в установке значений для StartDir и в параметрах TSelectDirOpts...
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#3
|
|||
|
|||
Поделись секретом. Я делаю так.
Код:
var a:String; begin if SelectDirectory('Выберите каталог','d:\',a ) then Begin FileListBox1.Directory := a; End else ShowMessage('Выбор был отменен'); Edit1.text:=a; end; Последний раз редактировалось Aleks99, 07.01.2014 в 01:44. |
#4
|
||||
|
||||
Код:
if SelectDirectory(a, [sdAllowCreate, sdPerformCreate, sdPrompt], 1000) then... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Может в unit Unit1; что добавить нужно?
а так Код:
if SelectDirectory(a, [sdAllowCreate, sdPerformCreate, sdPrompt], 1000) then [DCC Warning] Unit1.pas(7): W1005 Unit 'FileCtrl' is specific to a platform [DCC Error] Unit1.pas(53): E2001 Ordinal type required [DCC Error] Unit1.pas(53): E2010 Incompatible types: 'Integer' and 'string' [DCC Error] Unit1.pas(53): E2250 There is no overloaded version of 'SelectDirectory' that can be called with these arguments [DCC Warning] Unit1.pas(83): W1019 For loop control variable must be simple local variable [DCC Warning] Unit1.pas(109): W1019 For loop control variable must be simple local variable [DCC Warning] Unit1.pas(117): W1019 For loop control variable must be simple local variable [DCC Fatal Error] Project1.dpr(5): F2063 Could not compile used unit 'Unit1.pas' Если не трудно с рабочим примером помоги. тут фотки программы "Так есть" - нет возможности выбрать другой диск http://img-fotki.yandex.ru/get/6730/...5e98fb3f_L.jpg http://img-fotki.yandex.ru/get/9797/...e262d98e_L.jpg Последний раз редактировалось Aleks99, 07.01.2014 в 01:45. |
#6
|
||||
|
||||
Это работает под D7, вероятно в десятке что-то выкинули, тогда попробуйте вот так
Код:
SelectDirectory('Выберите каталог', '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}', a ) Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#7
|
|||
|
|||
Вы меня не правильно поняли. Я могу установить любой каталог, не суть.
дело в том, что когда я устанавливаю начальный каталог например d:/ то в открывшемся диологовом окне я не могу подняться вверх по дереву каталога например не могу выбрать диск Е или С. программа запоминает последнюю открытую окном диолог папку и при следующим старте открывает её же, (удобно) но не всегда нужен одина и та же папка. Вот попробуй Код:
var a:String; begin if SelectDirectory('Выберите каталог','d:\',a ) then Begin Label1.Caption := a; End else ShowMessage('Выбор был отменен'); end; Последний раз редактировалось Aleks99, 07.01.2014 в 01:45. |
#8
|
||||
|
||||
Цитата:
З.Ы. Оффтоп: Пжлст, пока ни кто не видел, отредактируйте ваши сообщения заключив бодяшки кода в тег [ CODE ]...[ /CODE ] только без пробелов - повысится вероятность того, что кто-то вам подскажет решение сабжевой проблемы. Извнт и удачи! Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#9
|
|||
|
|||
procedure TForm1.ToolButton5Click(Sender: TObject);
Код:
var a,: String; begin /// Этот путь вроде у всех есть кто на win7 (в оригинале переменная с memo1.text) if SelectDirectory('Выберите каталог','C:\Windows\System32\drivers',a) then else ShowMessage('Выбор был отменен'); end; Попробуй ты сможешь выбрать папку System32 ?? Спасибо за участие. Последний раз редактировалось Aleks99, 07.01.2014 в 01:48. |
#10
|
||||
|
||||
Цитата:
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#11
|
|||
|
|||
|
#12
|
||||
|
||||
Код ваш, установка начального каталога - как в #6: так можно лазить по всему доступному дисковому пространству машинки, открывается на изначально указанной папке и ещё можно подниматься вверх, вплоть до смены рабочего диска. Видимо разработчики немножко код в десятке почикали, такие пироги. Хотя, есть ещё SHBrowseForFolder...
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#13
|
|||
|
|||
Вот не хорошие люди кто с 10 поковырялся. А я только вчера 7 снёс, жаль.... буду ковырять SHBrowseForFolder.
спс |
#14
|
|||
|
|||
Не подскажишь как тут установить начальный каталог
Код:
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; Последний раз редактировалось Aleks99, 07.01.2014 в 02:03. |
#15
|
||||
|
||||
Оффтоп:
Всё же пжлст, оформите код тегом Код:
[СODE]...[/СODE] По теме вот некоторые ссылки, вот и вот Я не понял Вашего вопроса, но всё же Вам на него отвечу! |