![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Установка начального каталога SelectDirectory
Aleks © (2014-01-06 14:20:00)Доброго времяни суток Мастера подскажите, есть ли возможность установить начальный каталог в SelectDirectory так что б он развернулся и была возможность перейти как в низ каталога так и вверх.
Непонятно изложил свою мысль , извините, уточните.
Германн (2014-01-07 02:40:00) [1]
> P.S. А я тут не милостынью прошу, а совета и помощи
Увы, не похоже. Всё что я сказал есть в хелпе.
Aleks (2014-01-07 02:02:00) [2]Спасибо за ответ. Всем пока, тема закрыта.
P.S. А я тут не милостынью прошу, а совета и помощи, и нехрена умничить, нечего сказать так пусть мимо проходят, от таких всё одно тодку ноль.
Германн (2014-01-07 01:49:00) [3]
> Вот нашёл на другой функции, но честно не чего не понял,
> подскажите. как тут установить начальный каталог.
>
А на хрена? Я ж уже сказал про SHBrowseForFolder. То что ты привел это сильно урезанный код SelectDirectory.
Если уж сильно приспичило, то SelectDirectory существует в двух вариантах.
http://docwiki.embarcadero.com/Libraries/XE5/en/Vcl.FileCtrl.SelectDirectory
Первый (исконно Дельфийский) даст тебе возможность перемещаться по каталогам/дискам в любую сторону. Но увы он и выглядит антикварно и не локализован.
Если и это не устроит, рассмотри возможность использование диалога открытия/записи файла TOpen(Save)Dialog.
Если и это не годится, тогда ищи сторонние компоненты.
P.S. А на отвечающих перестань катить бочку. Тут не паперть, чтобы просить милостыню. И хелп надо иметь под руками и английский стараться учить.
Aleks (2014-01-07 01:30:00) [4]Умники идите стороной, .......
Пол дня на форуме, за это время двое помогали и двое пену пускали.
Я был не прав нормальных людей тут столько же сколько и Умников...
50\50
Плохиш (2014-01-07 01:10:00) [5]
> Aleks (06.01.14 20:08) [8]
> Нет у меня helpa.
>
Дальше читать не стал.
Aleks (2014-01-07 00:38:00) [6]Вот нашёл на другой функции, но честно не чего не понял, подскажите. как тут установить начальный каталог.
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;
Aleks (2014-01-06 23:50:00) [7]Блин пол дня мне всякую умнятину скармливали........... а оно вот как.
Мастера, что посоветуети, на чём данный диолог собрать.
Что б можно было устанавливать начальный каталог и
что б он развернулся и была возможность перейти как в низ каталога так и вверх.
Германн (2014-01-06 23:28:00) [8]
> Проблемма в том что я не могу подняться в папку System32
> или Windows и так далие.
C SelectDirectory и не получится ибо виндовая ShBrowseForFolderиначе работать и не умеет.
Aleks (2014-01-06 22:57:00) [9]По сценарию тут ария Плохиша :)
Нет, по сценарию с умничать Мастеров много , а нормально объяснить, помоч. только единицы.
Dennis I. Komarov (2014-01-06 22:47:00) [10]
> Это форум для начинающих Гранд Мастеров Delphi ? если так
> то прошу прощения я не туда попал.
> И с английским у меня не важно:(
>
По сценарию тут ария Плохиша :)
Aleks (2014-01-06 22:16:00) [11]программа запоминает последнюю открытую окном диолог папку и при следующим старте открывает её же, (удобно) но не всегда нужена одина и та же папка. Проблемма не могу подняться вверх по дереву каталога например не могу выбрать диск Е или С
Вот Код
procedure TForm1.ToolButton5Click(Sender: TObject);
var
a,: String;
begin
/// Этот путь вроде у всех есть кто на win7 (в оригинале переменная с memo1.text)
if SelectDirectory('Выберите каталог','C:\Windows\System32\drivers',a ) then
Begin
FileListBox1.Directory := a;
Memo1.Text:=a;
Memo1.Lines.SaveToFile(Prog+'\История\Путь.txt');
End
else
ShowMessage('Выбор был отменен');
end;
Проблемма в том что я не могу подняться в папку System32 или Windows и так далие.
SelectDirectory (2014-01-06 21:29:00) [12]> Aleks (06.01.14 21:22) [10]
Выложи свой код, если это не государственная тайна.
Если громоздкий, то на любой файлообменник и сюда ссылку
Aleks (2014-01-06 21:22:00) [13]Это форум для начинающих Гранд Мастеров Delphi ? если так то прошу прощения я не туда попал.
И с английским у меня не важно:(
Помогай по проще, для просто начинающих, ок?
SelectDirectory (06.01.14 18:28) [4] ---- Это вообще абракадабра какая то...
Тут картинки вылаживать можно?
тут фотки программы "Так есть" - нет возможности выбрать другой диск
"Так нужно"- уменя только в ручном режиме получается
http://img-fotki.yandex.ru/get/6730/...5e98fb3f_L.jpg http://img-fotki.yandex.ru/get/9797/...e262d98e_L.jpg
SelectDirectory (2014-01-06 20:45:00) [14]Неужели так сложно скомпилить строку
if SelectDirectory('e:\stro\ggh\text', [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then, которую я дал
SelectDirectory (06.01.14 18:28) [4]
про опции
[sdAllowCreate, sdPerformCreate, sdPrompt] напишу позже, а вообще в хелпе про них:
sdAllowCreate An edit box allows the user to type in the name of a directory that does not exist. This option does not create a directory: the application must read the name of the selected directory and create it if desired.
sdPerformCreate Used only in combination with sdAllowCreate. If the user enters a directory name that does not exist, the directory selection dialog creates it.
sdPrompt Used only in combination with sdAllowCreate. Displays a message box that informs the user when the entered directory does not exist and asks if the directory should be created. If the user chooses OK, the directory is created if the option set includes sdPerformCreate. If the option set does not include sdPerformCreate, the directory is not created: the application must read the directory name and create it.
Aleks (2014-01-06 20:08:00) [15]Нет у меня helpa.
Пример не работает, ошибка
[DCC Error] Unit1.pas(53): E2003 Undeclared identifier: 'SELDIRHELP'
[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'
SELDIRHELP - что это (Нет у меня helpa)
[sdAllowCreate, sdPerformCreate, sdPrompt] --- с этим делать
http://androschuk.blogspot.ru/2011/02/delphi.html--- тут читаю HELP
но того что мне нужно нет
Помогай сенсей
SelectDirectory (2014-01-06 19:45:00) [16]у тебя help есть?
примеры
procedure TForm1.Button1Click(Sender: TObject);
var
Dir: string;
begin
Dir := 'C:\MYDIR';
if SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
Label1.Caption := Dir;
end;
смотрел?
а так не пробовал?
if SelectDirectory('e:\stro\ggh\text', [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
SelectDirectory (2014-01-06 19:44:00) [17]у тебя help есть?
примеры
if SelectDirectory('e:\stro\ggh\text', [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
смотрел?
а так не пробовал?
if SelectDirectory('e:\stro\ggh\text', [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
Aleks (2014-01-06 19:06:00) [18]a ---- это переменная в которую функция заносит путь к папке выбранный пользователем
var
a:String;
begin
if SelectDirectory('Выберите каталог','e:\stro\ggh\text',a ) then
Begin
FileListBox1.Directory := a;
End
else
ShowMessage('Выбор был отменен');
end;
if SelectDirectory ('ТЕКСТ НА ОКНЕ','Установка начального каталога',РЕЗУЛЬТАТ ) then
if SelectDirectory('e:\stro\ggh\text', [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
Ни чего не получилось. ошибка компиляции.
0--- Это что?
'e:\stro\ggh\text'---- зачем это мне в названии окна?
[sdAllowCreate, sdPerformCreate, sdPrompt]---- об этом по подробние пожалуйста.
с примером если можно.
SelectDirectory (2014-01-06 18:28:00) [19]SelectDirectory('Выберите каталог','e:\stro\ggh\text', <I><U>a ) then
расскажи нам, что такое "а"
похоже, что ты не разобрался в параметрах этой функции :(
вместо ' Выберите каталог' должно находиться ' e:\stro\ggh\text', далее опции, с которыми вызываешь функцию и т.д.
Для начала, поставь первым параметром ' e:\stro\ggh\text', то есть так
if SelectDirectory('e:\stro\ggh\text', [sdAllowCreate, sdPerformCreate, sdPrompt], 0) then
ну, и, расскажи, что получилось :)
Aleks (2014-01-06 16:43:00) [20]Делаю так.
if SelectDirectory('Выберите каталог','',a ) then
Begin
FileListBox1.Directory := a;
End
else
ShowMessage('Выбор был отменен');
Открывается диологовое окно выбираю папку всё ок.
Хочется чтоб при открытии диол. окна разворачивался каталог до нужной папки, например (e:\stro\ggh\text).
Делаю
if SelectDirectory('Выберите каталог','e:\stro\ggh\text',a ) then
Begin
FileListBox1.Directory := a;
End
else
ShowMessage('Выбор был отменен');
Открываеться то, что нужно, но я не могу выбрать другой диск, или папку которая находиться выше по каталогу . нпример (e:\stro)